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.

1.1 MCC Melody Introduction

MCC Melody is a MCC Content Library, which 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. See MCC Melody Components.

Figure 1-1. MCC Builder Shows Dependencies Between Project Components
Tip: The DV Run Time Library uses the UART- and Timer-Drivers as dependencies.
Tip: Components directly show notifications, where any action is needed by the user.

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

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 . 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 . Firmware Portability Provided via a Component Interface

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.

MCC Content Libraries

MCC Melody and MPLAB Harmony are content library types supported in MPLAB® Code Configurator (MCC). Each provides user configuration of different settings and generates code in the MPLAB® X project.

1.2 MCC Melody Help Map

This diagram shows the MCC Melody Builder view, with an example project open, where links are provided for more information on a range of topics. Read the questions to find one that matches what you are looking for. The adjacent links will open online references or video training (courses) to get you familiar with different pieces of the MCC Melody and MPLAB Tools Ecosystem.

1.2.1 MCC Melody Builder, GUI

User Interface HelpMCC Melody Design Patterns for Control FlowExample ComponentsMCC Melody Technical ReferenceMCC Melody ComponentsAVR1000BPIC1000How to Write Bare Metal Code for PIC/AVR MCUsADCC API Reference, including use-casesData Streamer Library, API Reference, including use-casesUart Driver, API Reference, including use-casesTimer0 PLIB, API Reference, including use-casesADCC Example Component, running the examplesAPI References for AVR, PIC16F/18F and dsPIC, also tables of supported devices for each familyYouTube Playlist: Getting Started with MCC Melody Example ComponentsPIC18F57Q43 Datasheet

1.2.2 Tools Ecosystem Context

Where does MCC Melody fit into the MPLAB Tools Ecosystem?

Get Started Now With PIC Microcontrollers (MCUs)Get Started Now With AVR Microcontrollers (MCUs)Curiosity Nano ExplorerMPLAB X IDE Advanced Debugging (YouTube)Microchip University: MPLABX Tips and TricksMicrochip University: Visual Debugging with MPLAB Data VisualizerPIC Block Diagram - Navigation to Peripheral Tech BriefsAVR Block Diagram - Navigation to Peripheral Tech BriefsMCC Melody Data Streamer LibraryMCC Melody DV Run Time LibraryMCC Melody examples on MPLAB DiscoverMCC Melody Videos on MPLAB DiscoverMCC Melody on microchip.comMPLAB Code Configurator on microchip.comMPLAB X IDE