Overview

MPLAB ® Code Configurator Melody content for dsPIC33 offers device drivers support for dsPIC33 Digital Signal Controllers (DSCs).

1 Operating Environment

MCC Melody is supported in MPLAB® X

MPLAB® X Operating Environment

  • MPLAB® X IDE v6.30 or later
  • MPLAB® XC16 Compiler v2.10 or later
  • MPLAB® XCDSC Compiler v4.00 or later
  • MCC Plugin v5.7.0 or later
  • MCC Core 5.9.0 or later

2 Documentation Support

MCC Supports various levels of documentations:
  1. MCC User Guide - Explains the overall MCC usage and has pointers to MCC Melody Content type specific help.
  2. MCC Content Manager Help - Provided information about MCC Content Manager.
  3. MCC Melody Technical Reference - Provides detailed technical information about MCC Melody.
  4. Release notes are available for each component(s) in MCC Content Manager.
  5. Individual release information is available for each version of the component in the MCC Content Manager in the Version selection dropdown. Example: OPAMP Driver Change Log.
  6. API Documentation is available for each component through the Resource Management View.
Figure 2-1. MCC Melody Documentation Support

Refer to the individual Component Changelog from Content Manager for the Feature Support, Bug fix information of respective Driver, PLIB Hardware Peripheral, PIC24-dsPIC-Device Releases .

Figure 2-2. MCC Content Manager: Viewing version history for Driver/PLIB/Hardware Peripheral Initializer and PIC24-dsPIC Device

To know how to get the detailed information of individual Component Release version, refer the MCC Content Manager Reference.

3 Installation Requirements

The dsPIC33 MCC Melody content such as Drivers, PLIBs, Hardware Peripherals and dsPIC device can be installed using the Content Manager.

For more information about the content manager, go to the MCC Content Manager Reference.

4 What's New

1. I3C supported for dsPIC33AK256MPS306 device family.

5 Suppported MCU Family Devices

Refer to the below table for the list of device familes supported in both MCC Classic and MCC Melody

Table 5-1. Device Family Support
Sl. No.Device FamilyMCC MelodyMCC Classic
1dsPIC33CK256MC006
2dsPIC33AK256MPS306
3dsPIC33AK512MPS512
4dsPIC33AK128MC106
5dsPIC33CDVL64MC106
6dsPIC33CDVC256MP506
7dsPIC33CK512MPT608
8dsPIC33CDVL64MC106
9dsPIC33CDV64MC106
10dsPIC33CDVC256MP506
11dsPIC33CDV256MP506
12dsPIC33CK512MPT608
13dsPIC33CK1024MP710
14dsPIC33CK256MC506
15dsPIC33CK512MP608
16dsPIC33CK256MP508
17dsPIC33CK64MP105
18dsPIC33CK64MC105
19dsPIC33CH128MP508 and dsPIC33CH128MP508S1
20dsPIC33CH512MP508 and dsPIC33CH512MP508S1
21dsPIC33EP512MU814
22dsPIC33EP128GS806
23dsPIC33EP64GS506
24dsPIC33EP32GS202
25dsPIC33EP512GM710
26dsPIC33EP512GP506
27dsPIC33EV256GM106
28dsPIC33EV256GM006
29PIC24F16KM204
30PIC24FV32KA302
31PIC24FJ128GA010
32PIC24FJ64GA004
33PIC24FJ64GB004
34PIC24FJ64GA104
35PIC24FJ256GB110
36PIC24FJ256GA110
37PIC24FJ256DA210
38PIC24FJ256GB210
39PIC24FJ128GA310
40PIC24FJ128GB204
41PIC24FJ128GA204
42PIC24FJ128GC010
43PIC24FJ256GB412
44PIC24FJ256GA412
45PIC24FJ1024GB610
46PIC24FJ1024GA610
47PIC24FJ256GA705
48PIC24FJ128GL306
49PIC24FJ512GU410
50PIC24FJ64GU205
51PIC24F16KM204
52PIC24FV32KA302
Note: The version for MCC Melody in the above table represents the PIC24-dsPIC33 device package version.

6 Table: Peripheral Support by MCU Device

The MCC Melody supports the following PIC24/dsPIC33 devices and hardware peripherals:

Table 6-2. Legend
SymbolNote
Peripheral supported
Peripheral presently not supported
Peripheral does not exist in the device
Table 6-3. PIC24F/dsPIC33 Device Peripherals
DeviceIntegrated AnalogWaveform ControlClocks and TimersSafety and MonitoringWired Communications System FlexibilityUser InterfaceMemory
ADCURefDACCMPOPAPGACCSCBGMCCPPWMICOCDSMTMRRTCCQEILVDDMTWDTCRCIOIMPACCANI2CI3CSPIMSSPUSBSENTPMPBiSSUARTCLCExt IntDMAPTGLCDGFXITCCTMUFLASH
dsPIC33CK256MC006 Family
dsPIC33CK32MC002
dsPIC33CK32MC003
dsPIC33CK32MC005
dsPIC33CK32MC102
dsPIC33CK32MC103
dsPIC33CK32MC105
dsPIC33CK64MC002
dsPIC33CK64MC003
dsPIC33CK64MC005
dsPIC33CK64MC102
dsPIC33CK64MC103
dsPIC33CK64MC105
dsPIC33CK256MC002
dsPIC33CK256MC003
dsPIC33CK256MC005
dsPIC33CK256MC006
dsPIC33CK256MC102
dsPIC33CK256MC103
dsPIC33CK256MC105
dsPIC33CK256MC106
dsPIC33CK256MC502
dsPIC33CK256MC503
dsPIC33CK256MC505
dsPIC33CK256MC506
dsPIC33CK128MC002
dsPIC33CK128MC003
dsPIC33CK128MC005
dsPIC33CK128MC006
dsPIC33CK128MC102
dsPIC33CK128MC103
dsPIC33CK128MC105
dsPIC33CK128MC106
dsPIC33CK128MC502
dsPIC33CK128MC503
dsPIC33CK128MC505
dsPIC33CK128MC506
dsPIC33AK256MPS306 Family
dsPIC33AK128MPS103
dsPIC33AK128MPS105
dsPIC33AK128MPS106
dsPIC33AK128MPS303
dsPIC33AK128MPS305
dsPIC33AK128MPS306
dsPIC33AK256MPS103
dsPIC33AK256MPS105
dsPIC33AK256MPS106
dsPIC33AK256MPS303
dsPIC33AK256MPS305
dsPIC33AK256MPS306
dsPIC33AK512MP512 Family
dsPIC33AK256MPS505
dsPIC33AK256MPS506
dsPIC33AK256MPS508
dsPIC33AK256MPS510
dsPIC33AK256MPS512
dsPIC33AK512MPS505
dsPIC33AK512MPS506
dsPIC33AK512MPS508
dsPIC33AK512MPS510
dsPIC33AK512MPS512
dsPIC33AK256MPS205
dsPIC33AK256MPS206
dsPIC33AK256MPS208
dsPIC33AK256MPS210
dsPIC33AK256MPS212
dsPIC33AK512MPS205
dsPIC33AK512MPS206
dsPIC33AK512MPS208
dsPIC33AK512MPS210
dsPIC33AK512MPS212
dsPIC33AK128MC106 Family
dsPIC33AK32MC102
dsPIC33AK32MC103
dsPIC33AK32MC105
dsPIC33AK32MC106
dsPIC33AK64MC102
dsPIC33AK64MC103
dsPIC33AK64MC105
dsPIC33AK64MC106
dsPIC33AK128MC102
dsPIC33AK128MC103
dsPIC33AK128MC105
dsPIC33AK128MC106
dsPIC33CDVL64MC106 Family
dsPIC33CDVL64MC106
dsPIC33CDV64MC106
dsPIC33CDVC256MP506 Family
dsPIC33CDVC128MP506
dsPIC33CDVC256MP506
dsPIC33CDV128MP506
dsPIC33CDV256MP506
dsPIC33CDV128MP206
dsPIC33CDV256MP206
dsPIC33CK512MPT608 Family
dsPIC33CK512MPT608
dsPIC33CK256MPT608
dsPIC33CK256MP508 Family
dsPIC33CK128MP202............................................................
dsPIC33CK128MP203............................................................
dsPIC33CK128MP205............................................................
dsPIC33CK128MP206.........................................................
dsPIC33CK128MP208.........................................................
dsPIC33CK128MP502.........................................................
dsPIC33CK128MP503.........................................................
dsPIC33CK128MP505.........................................................
dsPIC33CK128MP506......................................................
dsPIC33CK128MP508......................................................
dsPIC33CK256MP202............................................................
dsPIC33CK256MP203............................................................
dsPIC33CK256MP205............................................................
dsPIC33CK256MP206.........................................................
dsPIC33CK256MP208.........................................................
dsPIC33CK256MP502.........................................................
dsPIC33CK256MP503.........................................................
dsPIC33CK256MP505.........................................................
dsPIC33CK256MP506......................................................
dsPIC33CK256MP508......................................................
dsPIC33CK32MP202............................................................
dsPIC33CK32MP203............................................................
dsPIC33CK32MP205............................................................
dsPIC33CK32MP206.........................................................
dsPIC33CK32MP502.........................................................
dsPIC33CK32MP503.........................................................
dsPIC33CK32MP505.........................................................
dsPIC33CK32MP506......................................................
dsPIC33CK64MP202............................................................
dsPIC33CK64MP203............................................................
dsPIC33CK64MP205............................................................
dsPIC33CK64MP206.........................................................
dsPIC33CK64MP208.........................................................
dsPIC33CK64MP502.........................................................
dsPIC33CK64MP503.........................................................
dsPIC33CK64MP505.........................................................
dsPIC33CK64MP506......................................................
dsPIC33CK64MP508......................................................
dsPIC33CK64MP105 Family
dsPIC33CK32MP102............................................................
dsPIC33CK32MP103............................................................
dsPIC33CK32MP105............................................................
dsPIC33CK64MP102............................................................
dsPIC33CK64MP103............................................................
dsPIC33CK64MP105............................................................
dsPIC33CK64MC105 Family
dsPIC33CK32MC102............................................................
dsPIC33CK32MC103............................................................
dsPIC33CK32MC105............................................................
dsPIC33CK64MC102............................................................
dsPIC33CK64MC103............................................................
dsPIC33CK64MC105............................................................
dsPIC33CK512MP608 Family
dsPIC33CK256MP305.........................................................
dsPIC33CK256MP306......................................................
dsPIC33CK256MP308......................................................
dsPIC33CK512MP305.........................................................
dsPIC33CK512MP306......................................................
dsPIC33CK512MP308......................................................
dsPIC33CK256MP605......................................................
dsPIC33CK256MP606...................................................
dsPIC33CK256MP608...................................................
dsPIC33CK512MP605......................................................
dsPIC33CK512MP606...................................................
dsPIC33CK512MP608...................................................
dsPIC33CK256MC506 Family
dsPIC33CK256MC506...................................................
dsPIC33CK256MC505...................................................
dsPIC33CK256MC503......................................................
dsPIC33CK256MC502...................................................
dsPIC33CK128MC506...................................................
dsPIC33CK128MC505......................................................
dsPIC33CK128MC503...................................................
dsPIC33CK128MC502...................................................
dsPIC33CK256MC106......................................................
dsPIC33CK256MC105......................................................
dsPIC33CK256MC103.........................................................
dsPIC33CK256MC102......................................................
dsPIC33CK128MC106......................................................
dsPIC33CK128MC105.........................................................
dsPIC33CK128MC103......................................................
dsPIC33CK128MC102......................................................
dsPIC33CK1024MP710 Family
dsPIC33CK256MP705...................................................
dsPIC33CK256MP706...................................................
dsPIC33CK256MP708...................................................
dsPIC33CK256MP710...................................................
dsPIC33CK512MP705...................................................
dsPIC33CK512MP706...................................................
dsPIC33CK512MP708...................................................
dsPIC33CK512MP710...................................................
dsPIC33CK1024MP705...................................................
dsPIC33CK1024MP706...................................................
dsPIC33CK1024MP708...................................................
dsPIC33CK1024MP710...................................................
dsPIC33CK256MP405......................................................
dsPIC33CK256MP406......................................................
dsPIC33CK256MP408......................................................
dsPIC33CK256MP410......................................................
dsPIC33CK512MP405......................................................
dsPIC33CK512MP406......................................................
dsPIC33CK512MP408......................................................
dsPIC33CK512MP410......................................................
dsPIC33CK1024MP405......................................................
dsPIC33CK1024MP406......................................................
dsPIC33CK1024MP408......................................................
dsPIC33CK1024MP410......................................................
dsPIC33CK512MPT608 Family
dsPIC33CK512MPT608-I/PT......................................................
dsPIC33CK256MPT608-I/PT......................................................
dsPIC33CH128MP508 Family
dsPIC33CH128MP202............................................................
dsPIC33CH128MP203............................................................
dsPIC33CH128MP205............................................................
dsPIC33CH128MP206............................................................
dsPIC33CH128MP208............................................................
dsPIC33CH128MP502.........................................................
dsPIC33CH128MP503.........................................................
dsPIC33CH128MP505.........................................................
dsPIC33CH128MP506.........................................................
dsPIC33CH128MP508.........................................................
dsPIC33CH64MP202............................................................
dsPIC33CH64MP203............................................................
dsPIC33CH64MP205............................................................
dsPIC33CH64MP206............................................................
dsPIC33CH64MP208............................................................
dsPIC33CH64MP502.........................................................
dsPIC33CH64MP503.........................................................
dsPIC33CH64MP505.........................................................
dsPIC33CH64MP506.........................................................
dsPIC33CH64MP508.........................................................
dsPIC33CH128MP508S1 Family
dsPIC33CH128MP202S1........................................................................
dsPIC33CH128MP203S1........................................................................
dsPIC33CH128MP205S1........................................................................
dsPIC33CH128MP206S1........................................................................
dsPIC33CH128MP208S1........................................................................
dsPIC33CH128MP502S1........................................................................
dsPIC33CH128MP503S1........................................................................
dsPIC33CH128MP505S1........................................................................
dsPIC33CH128MP506S1........................................................................
dsPIC33CH128MP508S1........................................................................
dsPIC33CH64MP202S1........................................................................
dsPIC33CH64MP203S1........................................................................
dsPIC33CH64MP205S1........................................................................
dsPIC33CH64MP206S1........................................................................
dsPIC33CH64MP208S1........................................................................
dsPIC33CH64MP502S1........................................................................
dsPIC33CH64MP503S1........................................................................
dsPIC33CH64MP505S1........................................................................
dsPIC33CH64MP506S1........................................................................
dsPIC33CH64MP508S1........................................................................
dsPIC33CH512MP508 Family
dsPIC33CH256MP205............................................................
dsPIC33CH256MP206............................................................
dsPIC33CH256MP208............................................................
dsPIC33CH256MP505.........................................................
dsPIC33CH256MP506.........................................................
dsPIC33CH256MP508.........................................................
dsPIC33CH512MP205............................................................
dsPIC33CH512MP206............................................................
dsPIC33CH512MP208............................................................
dsPIC33CH512MP505.........................................................
dsPIC33CH512MP506.........................................................
dsPIC33CH512MP508.........................................................
dsPIC33CH512MP508S1 Family
dsPIC33CH256MP205S1.....................................................................
dsPIC33CH256MP206S1.....................................................................
dsPIC33CH256MP208S1.....................................................................
dsPIC33CH256MP505S1.....................................................................
dsPIC33CH256MP506S1.....................................................................
dsPIC33CH256MP508S1.....................................................................
dsPIC33CH512MP205S1.....................................................................
dsPIC33CH512MP206S1.....................................................................
dsPIC33CH512MP208S1.....................................................................
dsPIC33CH512MP505S1.....................................................................
dsPIC33CH512MP506S1.....................................................................
dsPIC33CH512MP508S1.....................................................................

7 MISRA C:2012 Compliance Report

MCC Melody generated code for dsPIC33A device family are made MISRAC:2012 compliant for all the Mandatory and Required set of rules. However, full compliance with all MISRA rules is not always feasible. The following document provides a detailed list of deviations.

MCC Melody generated code for dsPIC33A device family is analyzed using static analysis tool ‘MISRA Check’ available in MPLAB.

Table 7-4. MISRA C Compliance: Deviation list
Rule(Type)Peripheral(s)DescriptionDeviation Scenario
8.4 (Required)All PeripheralsA compatible declaration shall be visible when an object or function with external linkage is definedIn interrupt service routines, their header is implemented outside of the driver in compiler-supplied header files
8.12 (Required)ClockWithin an enumerator list, the value of an implicitly-specified enumeration constant shall be uniqueMultiple enum mapped to same clock generator which is part of requirement hence cannot be unique

Device Family Compliance Summary

The table below summarizes the MISRA C:2012 compliance status for MCC Melody-generated code across various dsPIC33xx device families. Compliance is evaluated against all Mandatory and Required MISRA C:2012 rules using static analysis tool. A “Yes” indicates that the generated code meets these requirements with documented deviations as listed above.

Device FamilyMISRA C:2012 (Mandatory, Required) Compliant
dsPIC33AKYes – Compliant with Mandatory and Required rules with documented exceptions
dsPIC33CKYes – Compliant with Mandatory and Required rules with documented exceptions
dsPIC33CHYes – Compliant with Mandatory and Required rules with documented exceptions

8 Melody Package Information

Device Content supports the following Packages
  • Drivers
  • PLIBs
  • dsPIC-Devices

Drivers

  • Most of the drivers provide portabability to the functionalities of the hardware peripheral.
  • Migrate-able across devices and provides usable code and configuration

Multiple Drivers for One Hardware Peripheral

The Drivers are categorized based on their functionality of a hardware peripheral helping the customer to precisely select as per the requirment thus avoiding the hassle of too many configurations.
Table 8-5. Driver Categorization
Driver(s)Hardware Peripheral Functionality (PLIBs)
IC, Edge Output, Pulse Output, PWMMCCP/SCCP
CAN FD and CAN 2.0 CAN
I2C Host, I2C Client I2C
SPI Host, SPI ClientSPI

Same Driver for Different Hardware Peripherals

The Driver(s) carefully abstracts out the underlying hardware peripheral details, while providing the functionality.

For Ex. Timer Driver can work either with a Timer peripheral or an SCCP peripheral whichever is supported by the device.

Revamped System Module

Getting an appropriate clock source is always a challenging task, however with the new design of System Module, now it all takes a single input from the user of the required clock frequency and MCC helps the user in getting the requested frequency or the closest frequency that's supported while having the corresponding configurations done at the backend.

Generated Firmware

The generated firmware from the Driver(s) supports portability across multiple MCU devices independent of both a peripheral instance, and the MCU device.

Fig 1 : MCC Generated files for Timeout Driver and generated Timer API's

Hardware Peripheral Initializers

The hardware peripheral intializers are generated for bare metal development and provide non-portable direct access to the hardware registers.

The Initialize function has code comments to describe the settings made.

Fig 2: Only 1 function is generated for Hardware Peripheral Initializers