1 MCC Melody Introduction

MCC Melody (like MPLAB Harmony) is a content type supported in MCC, providing Libraries, Drivers, Peripheral Libraries (PLIBs) for the development of embedded software on a range of Microchip MCUs.

MCC Melody, MCC Classic and MCC Harmony are various content types supported in MCC. Each provides user configuration of different settings and generates code in the MPLAB® X project. MCC Melody provides Libraries, Drivers, Peripheral Libraries (PLIB) and Hardware Initializers (HWI) for the development of embedded software for Microchip PIC® and AVR® Microcontrollers (MCUs) and dsPIC® Digital Signal Controllers (DSCs). These components are customized via a graphical configuration tool, generating highly efficient C code.

The low-level Peripheral Libraries (PLIBs) are simple functions to initialize and control peripherals and basic device features. The System Drivers enable the configuration of general functionality, often used by other peripherals, such as Pins, Interrupts and the System Clock. Drivers depend on PLIBs and abstract the hardware details away from Libraries and applications. Libraries use drivers and system services for device independence, and they provide support for networking, USB, cryptography, and other capabilities often required by today’s embedded applications.

Key Features of MCC Melody

  1. A structured relationship manager (MCC Builder), which provides a clear visualization of a component's related dependencies and context in your project.
  2. An implementation that can enable components to be available to be configured in the new online development ecosystem, i.e., in MPLAB Xpress IDE.

The components developed for MCC Melody are easily portable from one MCU to another. MCC Classic is the name used for the content version, which was available before MCC Melody and without the support of the above features.

MCC Builder

The MCC Builder offers equivalent to Project Resources but with added dependency visualization.

  • A more intuitive “schematic” type editor
  • Shows relationships and dependencies between your project libraries (middleware), drivers, and hardware peripherals, giving an added context to an individual component’s configuration
  • Focus on the details that matter, related to what you are currently configuring, i.e., the application you’re working on and how that part connects to other pieces
Figure 1-1. MCC Builder Shows Dependencies Between Project Components. E.g., Crypto Auth Lib Uses the TWI0_Peripheral (AVR I2C Peripheral) and WINC15XX Wi-Fi module uses the SPI0 and a delay.

Web-Based Interface

MCC Melody can be used in both MPLAB X and MPLAB Xpress, allowing users to switch between the two, if needed, for collaboration and development.

Configuration and Firmware Portability

Drivers support both a Configuration- and a Firmware-portability, providing an easy to read and efficient abstraction to the functionality of the peripheral, e.g., ADC, UART, Timer, etc. This combination means that projects developed with MCC Melody will be more portable between HW peripherals and MCU devices.

Configuration portability - though a use-case focused configuration interface, allows selecting or easy changing a component's underlying hardware dependency. In the example below - one selects the hardware peripheral to run the Timer use case.
Figure 1-2. Configuration Portability Provided via a Dependency Selector
Firmware portability through writing application code using portable interface API, ensures that it's easy to change a peripheral instance the code runs on. Code written using the Interface API can easily be changed from one hardware module to another. For example, if you would like to use Timer1 for another purpose, it will be easy to point the TIMER_INTERFACE to run on another hardware timer.
Figure 1-3. Firmware Portability Provided via a Component Interface