MPLAB® Code Configurator v3.xx User’s Guide 2016 Microchip Technology Inc. DS40001829B Note the following details of the code protection feature on Microchip devices: • Microchip products meet the specification contained in their particular Microchip Data Sheet. • Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the intended manner and under normal conditions. • There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data Sheets. Most likely, the person doing so is engaged in theft of intellectual property. • Microchip is willing to work with the customer who is concerned about the integrity of their code. • Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not mean that we are guaranteeing the product as “unbreakable.” Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act. Information contained in this publication regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer’s risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights unless otherwise stated. Trademarks The Microchip name and logo, the Microchip logo, AnyRate, dsPIC, FlashFlex, flexPWR, Heldo, JukeBlox, KEELOQ, KEELOQ logo, Kleer, LANCheck, LINK MD, MediaLB, MOST, MOST logo, MPLAB, OptoLyzer, PIC, PICSTART, PIC32 logo, RightTouch, SpyNIC, SST, SST Logo, SuperFlash and UNI/O are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. ClockWorks, The Embedded Control Solutions Company, ETHERSYNCH, Hyper Speed Control, HyperLight Load, IntelliMOS, mTouch, Precision Edge, and QUIET-WIRE are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, BodyCom, chipKIT, chipKIT logo, CodeGuard, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, EtherGREEN, In-Circuit Serial Programming, ICSP, Inter-Chip Connectivity, JitterBlocker, KleerNet, KleerNet logo, MiWi, motorBench, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, PureSilicon, RightTouch logo, REAL ICE, Ripple Blocker, Serial Quad I/O, SQI, SuperSwitcher, SuperSwitcher II, Total Endurance, TSHARC, USBCheck, VariSense, ViewSpan, WiperLock, Wireless DNA, and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. Microchip received ISO/TS-16949:2009 certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona; Gresham, Oregon and design centers in California and India. The Company’s quality system processes and procedures are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping devices, Serial EEPROMs, microperipherals, nonvolatile memory and analog products. In addition, Microchip’s quality system for the design and manufacture of development systems is ISO 9001:2000 certified. QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV == ISO/TS 16949 == DS40001829B-page 2 Silicon Storage Technology is a registered trademark of Microchip Technology Inc. in other countries. GestIC is a registered trademarks of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip Technology Inc., in other countries. All other trademarks mentioned herein are property of their respective companies. © 2016, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. ISBN: 978-1-5224-0644-0 2016 Microchip Technology Inc. MPLAB® CODE CONFIGURATOR V3.XX USER’S GUIDE Table of Contents Preface ........................................................................................................................... 4 Chapter 1. Overview 1.1 Introduction ..................................................................................................... 8 Chapter 2. Operating Areas 2.1 Overview ...................................................................................................... 10 2.2 Resource Area ............................................................................................. 12 2.2.1 Project Resources Area ............................................................................ 12 2.2.2 Device Resources Area ............................................................................. 12 2.2.3 Versions Area ............................................................................................ 13 2.2.3.1 Adding Libraries to MCC ........................................................... 14 2.3 Pin Manager Area ........................................................................................ 15 2.3.1 Package View ............................................................................................ 16 2.3.2 Table View ................................................................................................. 16 2.3.3 Pin Module View ........................................................................................ 19 2.4 Composer Area ............................................................................................ 20 2.4.1 The Easy Setup Tab .................................................................................. 20 2.4.2 The Registers Tab ..................................................................................... 20 2.4.3 The Notifications Tab ................................................................................ 21 2.5 MCC Options ................................................................................................ 23 2.5.1 MCC File Handling .................................................................................... 23 2.5.2 MCC Dialogs ............................................................................................. 24 2.5.3 MCC Line Endings .................................................................................... 24 2.5.4 MCC Libraries ........................................................................................... 24 Chapter 3. Generating MCC Drivers 3.1 Setting Up MPLAB X IDE and Launching the MCC ..................................... 25 3.2 Selecting and Configuring Modules .............................................................. 26 3.3 Generating Code .......................................................................................... 26 3.3.1 Saving and Loading the MCC Configuration ............................................. 27 3.3.2 The MCC Merge Window .......................................................................... 27 Chapter 4. Generated Sources and Header Files Chapter 5. MCC Device Migration Worldwide Sales and Service .................................................................................... 32 2016 Microchip Technology Inc. DS40001829B-page 3 MPLAB® CODE CONFIGURATOR V3.XX USER’S GUIDE Preface NOTICE TO CUSTOMERS All documentation becomes dated, and this manual is no exception. Microchip tools and documentation are constantly evolving to meet customer needs, so some actual dialogs and/or tool descriptions may differ from those in this document. Please refer to our website (www.microchip.com) to obtain the latest documentation available. Documents are identified with a “DS” number. This number is located on the bottom of each page, in front of the page number. The numbering convention for the DS number is “DSXXXXXA”, where “XXXXX” is the document number and “A” is the revision level of the document. For the most up-to-date information on development tools, see the MPLAB® IDE online help. Select the Help menu, and then Topics to open a list of available online help files. INTRODUCTION This chapter contains general information that will be useful to know before using the MPLAB® Code Configurator V3.xx. Items discussed in this chapter include: • • • • • • • Document Layout Conventions Used in this Guide Recommended Reading The Microchip Website Development Systems Customer Change Notification Service Customer Support Revision History DOCUMENT LAYOUT This document describes how to use the MPLAB® Code Configurator V3.xx. The document is organized as follows: • Chapter 1. “Overview” – This chapter provides a description of the MPLAB® Code Configurator and basic information about its use. • Chapter 2. “Operating Areas” – This chapter contains the listing and description of the main operating areas of the MPLAB® Code Configurator. • Chapter 3. “Generating MCC Drivers” – Consult this chapter to find out how to generate peripheral drivers using the MPLAB® Code Configurator. • Chapter 4. “Generated Sources and Header Files” – This chapter provides information about the generated drivers. • Chapter 5. “MCC Device Migration” 2016 Microchip Technology Inc. DS40001829B-page 4 Preface CONVENTIONS USED IN THIS GUIDE This manual uses the following documentation conventions: DOCUMENTATION CONVENTIONS Description Arial font: Italic characters Initial caps Quotes Underlined, italic text with right angle bracket Bold characters N‘Rnnnn Text in angle brackets < > Courier New font: Plain Courier New Represents Referenced books Emphasized text A window A dialog A menu selection A field name in a window or dialog A menu path MPLAB® IDE User’s Guide ...is the only compiler... the Output window the Settings dialog select Enable Programmer “Save project before build” A dialog button A tab A number in verilog format, where N is the total number of digits, R is the radix and n is a digit. A key on the keyboard Click OK Click the Power tab 4‘b0010, 2‘hF1 Italic Courier New Sample source code Filenames File paths Keywords Command-line options Bit values Constants A variable argument Square brackets [ ] Optional arguments Curly brackets and pipe character: { | } Ellipses... Choice of mutually exclusive arguments; an OR selection Replaces repeated text Represents code supplied by user 2016 Microchip Technology Inc. Examples File>Save Press <Enter>, <F1> #define START autoexec.bat c:\mcc18\h _asm, _endasm, static -Opa+, -Opa0, 1 0xFF, ‘A’ file.o, where file can be any valid filename mcc18 [options] file [options] errorlevel {0|1} var_name [, var_name...] void main (void) { ... } DS40001829B-page 5 Preface RECOMMENDED READING This user’s guide describes how to use Microchip’s MPLAB® Code Configurator V3.xx. For more information on the MPLAB® Code Configurator V3.xx, refer to the link below: http://www.microchip.com/mcc THE MICROCHIP WEBSITE Microchip provides online support via our website at www.microchip.com. This website is used as a means to make files and information easily available to customers. Accessible by using your favorite Internet browser, the website contains the following information: • Product Support – Data sheets and errata, application notes and sample programs, design resources, user’s guides and hardware support documents, latest software releases and archived software • General Technical Support – Frequently Asked Questions (FAQs), technical support requests, online discussion groups, Microchip consultant program member listing • Business of Microchip – Product selector and ordering guides, latest Microchip press releases, listing of seminars and events, listings of Microchip sales offices, distributors and factory representatives DEVELOPMENT SYSTEMS CUSTOMER CHANGE NOTIFICATION SERVICE Microchip’s customer notification service helps keep customers current on Microchip products. Subscribers will receive e-mail notification whenever there are changes, updates, revisions or errata related to a specified product family or development tool of interest. To register, access the Microchip website at www.microchip.com, click on Customer Change Notification and follow the registration instructions. The Development Systems product group categories are: • Compilers – The latest information on Microchip C compilers, assemblers, linkers and other language tools. These include all MPLAB C compilers; all MPLAB assemblers (including MPASM™ assembler); all MPLAB linkers (including MPLINK™ object linker); and all MPLAB librarians (including MPLIB™ object librarian). • Emulators – The latest information on Microchip in-circuit emulators.This includes the MPLAB REAL ICE™ and MPLAB ICE 2000 in-circuit emulators. • In-Circuit Debuggers – The latest information on the Microchip in-circuit debuggers. This includes MPLAB ICD 3 in-circuit debuggers and PICkit™ 3 debug express. • MPLAB® IDE – The latest information on Microchip MPLAB IDE, the Windows® Integrated Development Environment for development systems tools. This list is focused on the MPLAB IDE, MPLAB IDE Project Manager, MPLAB Editor and MPLAB SIM simulator, as well as general editing and debugging features. • Programmers – The latest information on Microchip programmers. These include production programmers such as MPLAB REAL ICE in-circuit emulator, MPLAB ICD 3 in-circuit debugger and MPLAB PM3 device programmers. Also included are nonproduction development programmers such as PICSTART® Plus and PICkit 2 and 3. 2016 Microchip Technology Inc. DS40001829B-page 6 Preface CUSTOMER SUPPORT Users of Microchip products can receive assistance through several channels: • • • • Distributor or Representative Local Sales Office Field Application Engineer (FAE) Technical Support Customers should contact their distributor, representative or field application engineer (FAE) for support. Local sales offices are also available to help customers. A listing of sales offices and locations is included in the back of this document. Technical support is available through the website at: http://www.microchip.com/support and http://www.microchip.com/forums. REVISION HISTORY Revision A (January 2016) Initial release of the document. Revision B (May 2016) Revise Figure 1-1; Revise Chapter 2; Revised Figure 2-5 Title; Add Figures 2-6 through 2-10; Revise Chapter 3. 2016 Microchip Technology Inc. DS40001829B-page 7 MPLAB® CODE CONFIGURATOR V3.XX USER’S GUIDE Chapter 1. Overview 1.1 INTRODUCTION The MPLAB® Code Configurator (MCC) generates driver code using a Graphical User Interface (GUI). The generated drivers control the peripherals on PIC® microcontrollers. The GUI provides an easy means for setting up the configuration of the peripherals. The MCC is a plugin for the MPLAB X IDE. Additionally, the MCC is used to configure and generate libraries, which allows the user to configure and generate code for software libraries and off-chip peripherals. The generated drivers or libraries can be used in any Microchip PIC device application program. The MCC requires a MPLAB X IDE project to be created, or an existing project opened, before launching the MCC plugin. This is necessary as the MCC needs to know the device used in the project, to have access to device-specific information like registers, bits and configurations and to set up the MCC GUI. The MCC generates source and header files based on selections made in the GUI. The generated files are added to the active project of MPLAB X IDE. Figure 1-1 shows an overview of working of the MCC for generating peripheral drivers or libraries. 2016 Microchip Technology Inc. DS40001829B-page 8 Overview FIGURE 1-1: 2016 Microchip Technology Inc. WORKING OF MPLAB® CODE CONFIGURATOR DS40001829B-page 9 MPLAB® CODE CONFIGURATOR V3.XX USER’S GUIDE Chapter 2. Operating Areas 2.1 OVERVIEW The MCC user interface consists of three main operating areas, as shown in Figure 2-1. 1. Resource Area: This area displays the MCC supported on-chip peripherals, libraries, and off-chip peripherals that are available for the selected device. The Resource Area includes project resources selected for the project, the device resources showing the available resources and the available MCC library versions on the local machine. 2. Composer Area: This area is the main area in which a peripheral or library driver can be configured. This area provides the user with an interface to configure the peripheral or the library driver. 3. Pin Manager Area: in this area the I/O pins of the device can be configured. The Pin Manager Table View provides an interface for configuring the device pins. This area also displays the pins in a Package View, showing the pin out of the device and the functions assigned to the pins. 2016 Microchip Technology Inc. DS40001829B-page 10 MCC WITH DIFFERENT OPERATING AREAS 2016 Microchip Technology Inc. FIGURE 2-1: Operating Areas DS40001829B-page 11 Operating Areas 2.2 RESOURCE AREA The Resource Area is further divided into three sub-windows: 1. Project Resources Area 2. Device Resources Area 3. Versions Area 2.2.1 Project Resources Area The Project Resources Area (Figure 2-2) displays the list of on-chip and off-chip peripherals, and libraries that have been configured for the MCC project. The peripheral and libraries are added to the project by selecting them from the Device Resources Area. To add a peripheral or library to the Project Resources Area, double-click on its name in the Device Resources Area. The corresponding user interface gets displayed in the Composer Area from where the selected module can be configured. A module in the Project Resources window can be removed from the project by clicking the X button to the right of the module name in the Project Resources Area. The module will be removed from the MPLAB X IDE project. When a module is removed from the Project Resources, all of the configuration information for that module is lost. There are three system modules that are always available in the Project Resources Area. These modules cannot be removed. The modules are: 1. Interrupt Module: configures the interrupts for the device. 2. Pin Module: configures the pins for the device. 3. System Module: configures the system clock, Configuration bits, and other device-level functions for the device. FIGURE 2-2: 2.2.2 PROJECT RESOURCES AREA Device Resources Area The Device Resources Area (Figure 2-3) lists data sheet, on-chip and off-chip peripherals and libraries supported by MCC for the device configured in the MPLAB X IDE project. These items can be added to the MCC Project Resources Area. When the name of a peripheral or library is double-clicked, it is moved from the Device Resources Area, to the Project Resources Area. Note: 2016 Microchip Technology Inc. The Documents section of the Device Resources Area provides a link to the data sheet of the selected device on www.microchip.com. DS40001829B-page 12 Operating Areas FIGURE 2-3: DEVICE RESOURCES AREA The Device Resources tree shown in Figure 2-3 can also be navigated and handled by using the following keys: 1. Up and down arrow keys: for moving up and down in the tree, respectively 2. Right arrow key: for expanding a node 3. Left arrow key: for collapsing a node 2.2.3 Versions Area The Versions Area provides information about the versions of the component groups that make up MCC. These component groups are called “Libraries”. Over time, multiple versions of the Libraries may be available. In the Versions Area, MCC can be configured to use a specific version of a Library for the current MCC project. 2016 Microchip Technology Inc. DS40001829B-page 13 Operating Areas FIGURE 2-4: VERSIONS AREA - A red dot means that the version of the library is not compatible with the version of the core installed. - A grey dot means that the version of the library is compatible but is not loaded in the device resources. - A green dot means that the version is compatible with the core and is loaded in the device resources. To load a compatible version of the library in the device resources, the user needs to invoke the context menu and select “Mark for Load” for the specific library and then hit Load Selected Libraries button in Versions Area. 2.2.3.1 ADDING LIBRARIES TO MCC The user can download the library from the MCC website and load it to MCC in MPLAB X. 2016 Microchip Technology Inc. DS40001829B-page 14 Operating Areas FIGURE 2-5: LIBRARIES 1. Choose where you have downloaded the library; it should be a .jar file. (If you have downloaded from the website, it might be in .zip format, which would need to be unzipped). 2. Using the “Open Library folder”, copy the library into that location. 3. Restart MCC. 4. The newly added library should appear in the Versions Area. 2.3 PIN MANAGER AREA The Pin Manager Area consists of the following two sub-areas: 1. The Package or Graphical View, which shows a graphical representation of the package selected for the device (Figure 2-6). 2. Table View, which shows a tabular form of the Pin Manager (Figure 2-8). I/O pins of the selected device can be configured from these windows. Note: 2016 Microchip Technology Inc. In addition to the Pin Manager Area, additional pin configuration is provided by the Pin Module in the Composer Area. When the Pin Module is selected in the Project Resources Area, the Pin Module View is shown in the Composer Area. DS40001829B-page 15 Operating Areas The following color combinations are associated with the pins in Graphical or Table View: 1. Gray colored pin: indicates that the pin is not usable in the selected configuration and that there is no enabled module which has any functionality on that pin. There are also grayed out locks on a white background that indicate pins that are locked out by selected system functions. 2. Blue colored pin: indicates pins that are available to be allocated to a module. 3. Green colored pin (with a lock): this combination indicates that the pin has been allocated and selected for a module. The name displayed against the pin is either the name of the pin in the module’s context or a custom name entered. 4. Green color pin (with chain link): this combination indicates that the pin is shared between multiple functions. 5. Yellow colored pin: indicates a possible alternate pin for an already allocated pin function. 6. Grayed out locks on a white background indicates pins that are locked out by selected system functions. 2.3.1 Package View The graphical Pin Manager can be zoomed in and out in order to adjust its visibility. This can be done by scrolling the mouse wheel when the mouse is over the Package View. Zooming can also be achieved by the “+” and “-” keys on the keyboard (useful if the mouse is not available). FIGURE 2-6: 2.3.2 PACKAGE VIEW OF PIN MANAGER Table View In the Table View sub-area, the device package can be selected from a drop-down list. The package selection is in the upper left side of the Pin Manager Table View. In Figure 2-7, the drop-down list shows that the TQFP44 package has been selected. The selected package will be displayed in the Package View. The pin numbers in the Table View will also show the pin numbers for the selected package. 2016 Microchip Technology Inc. DS40001829B-page 16 Operating Areas FIGURE 2-7: TABLE VIEW OF PIN MANAGER (MCC V3.00 AND EARLIER) The three leftmost columns in the Table View indicate the module’s name, functionality name and the direction, respectively. The Table View or the Package View can be exported using the Export button. It is used to save the Package or the Table View to an image file. The supported image format is .png. FIGURE 2-8: TABLE VIEW OF PIN MANAGER The Table View allows you to: - Expand/collapse rows and ports (Figure 2-9) - Hide and show ports and rows (Figure 2-9 and Figure 2-10) - Show only the pins that are configured (Isolate) (Figure 2-11) FIGURE 2-9: 2016 Microchip Technology Inc. COLLAPSING PORTS AND ROWS DS40001829B-page 17 Operating Areas FIGURE 2-10: HIDING PORTS AND ROWS FIGURE 2-11: RESTORING PORTS AND ROWS (SHOW ALL) FIGURE 2-12: ISOLATING THE SELECTED PINS 2016 Microchip Technology Inc. DS40001829B-page 18 Operating Areas 2.3.3 Pin Module View For any pin which has been configured in the Pin Manager Table View, additional configuration of that pin can be done using the Pin Module View in the Composer Area. To display the Pin Module View, click on the Pin Module in the Project Resources Area (Figure 2-13). FIGURE 2-13: 2016 Microchip Technology Inc. PIN MODULE VIEW OF PIN MANAGER DS40001829B-page 19 Operating Areas 2.4 COMPOSER AREA When a peripheral or library is selected from the Project Resources Area, its corresponding configuration GUI is displayed in the Composer Area. The Composer Area (Figure 2-14) is where peripherals and libraries are configured based on the application’s requirements. After completing the configuration of the peripheral, clicking the Generate Code button will generate drivers for all of the peripherals and libraries configured for the device. 2.4.1 The Easy Setup Tab FIGURE 2-14: COMPOSER AREA FOR UART MODULE If the UART1 peripheral is selected from the Project Resources Area, the UART1 Composer Area is displayed. The Easy Setup tab in the UART Composer Area allows configuring various UART parameters related to the transmission and the reception operations. 2.4.2 The Registers Tab In addition to the Easy Setup tab in the module’s Composer, MCC v3.00 also provides a Registers tab (Figure 2-15). The Registers tab provides direct access for the user to configure the module’s registers and settings. The Easy Setup tab allows configuration of the common usages of the modules. The Registers tab allows the user unrestricted access to the configuration of the module. Any module configuration done using the Easy Setup tab will be reflected in the values displayed in the Registers tab. Likewise, changes performed in the Registers tab, will be reflected in the values in the Easy Setup tab. 2016 Microchip Technology Inc. DS40001829B-page 20 Operating Areas FIGURE 2-15: 2.4.3 REGISTER VIEW The Notifications Tab The notifications in the Composer View show details and hints for all the modules that are being selected in the Project Resources window. The Notifications tab (Figure 2-16) has four columns: category, module name, type, and description. 1. Category: identifies the notification as an alert or information that the module depends on another module. 2. Module Name: is the name of the module that generated the notification. 3. Type: indicates the severity of the notification. - Hint: this provides information to assist in the successful configuration of the module. The module and the MCC can still be used. Action might be required. - Info: information only, no action is required. Note: The notification type may change as the user changes the configuration of MCC. For example, “Warning” might indicate that a module requires another module to be added to the project to operate correctly. After the module is added, the notification type would change to “Info”. Note: Notifications with a type of “Warning” or “Error” indicates that MCC code generation may fail, or that the generated code may not operate as intended when it is loaded on the target device. 2016 Microchip Technology Inc. DS40001829B-page 21 Operating Areas FIGURE 2-16: NOTIFICATIONS TAB IN COMPOSER AREA The MCC configuration is saved to the disk when the Generate button is pressed, or if the MPLAB X IDE Save button is clicked. An existing MCC configuration file can be loaded by double-clicking on the desired .mc3 file in the Important Files section of the MPLAB X IDE project (Figure 2-17). FIGURE 2-17: SAVE/LOAD BUTTONS IN MPLAB X IDE At any time, using the Undo and Redo buttons, located in the MPLAB X IDE toolbar (Figure 2-18), will undo and redo the settings in the Composer or the Pin Manager Area. FIGURE 2-18: 2016 Microchip Technology Inc. UNDO/REDO BUTTONS IN MPLAB X IDE DS40001829B-page 22 Operating Areas FIGURE 2-19: INVALID DATA ENTRY Additional validation is implemented for areas where text is entered by the user. The field will blink on and off until a legal value is entered. In Figure 2-19 the field requires a legal “C” identifier. 2.5 MCC OPTIONS Several aspects of the operation of the MCC can be managed by using the “Options” panel (Figure 2-20), which can be invoked by clicking Tools → Options → Embedded → MPLAB Code Configurator in the menu bar of the MPLAB® X IDE. FIGURE 2-20: MCC OPTIONS PANEL The MCC Options panel offers the following controls: 2.5.1 MCC File Handling 1. Remove unused files from the project: enabling this option tells the MCC to remove .c and .h files for modules which were removed from the MCC configuration between the subsequent generation procedures. This option ensures that the files which are included in the project (and thus in the compilation) are only those which are strictly necessary. However, this will not delete the files from the disk. 2. Delete unused files from the disk: this option gets enabled only when selecting “Remove unused files from the project”. This performs the additional task of deleting unused files from the disk and therefore, files cannot be recovered anymore. 2016 Microchip Technology Inc. DS40001829B-page 23 Operating Areas 2.5.2 MCC Dialogs 1. Always ask before removing a module: enabling this control enables the “Are you sure?” dialog box which appears while disabling or removing an enabled module. 2. Always ask before removing a pin: enabling this control enables the “Are you sure?” dialog box which appears while deallocating or removing a pin from a peripheral. 2.5.3 MCC Line Endings Specify the type of line endings to use in the files generated by MCC. The default is DOS (<CR><LF>). Unix line endings (<LF>) may be specified. 2.5.4 MCC Libraries 1. Use the Add Library button to add a MCC modular library to the MCC plugin. 2. Use the Open Library Folder button to view the MCC modular libraries folder. 2016 Microchip Technology Inc. DS40001829B-page 24 MPLAB® CODE CONFIGURATOR V3.XX USER’S GUIDE Chapter 3. Generating MCC Drivers 3.1 SETTING UP MPLAB X IDE AND LAUNCHING THE MCC To generate drivers using the MCC in MPLAB® X IDE, follow these steps: 1. Create a new MPLAB® X IDE project or open an existing project (Figure 3-1). 2. If multiple projects are open in MPLAB X IDE, set one as the main (active) project by selecting “Set as Main Project” in the MPLAB X IDE. For the active project, the MCC automatically includes the generated driver files. 3. Open the MCC plugin tool. For this, in the menu bar of the MPLAB X IDE, go to Tools → Embedded → MPLAB® Code Configurator v3. Or, click on the MCC icon in the MPLAB X IDE toolbar. Note: For MAC users the “Embedded” selection will be under the “Preferences” menu. This launches the MCC GUI. FIGURE 3-1: 2016 Microchip Technology Inc. OPENING THE MCC IN MPLAB® X IDE DS40001829B-page 25 Generating MCC Drivers 3.2 SELECTING AND CONFIGURING MODULES After opening the MCC, peripheral and library modules can be added to the project. 1. In the Project Resource Area, select the peripheral or library module which needs to be configured by clicking the module’s name. After a peripheral or library module is selected for configuration, the configuration GUI for that peripheral is displayed in the Composer Area. 2. Configure the peripheral as required for your application in the Composer Area. 3. Configure the pins in the Pin Manager Area depending upon the application requirements. 3.3 GENERATING CODE When the MCC Generate button is pressed in the Project Resources window, the listed actions are performed by MCC. Details of the code generation are shown in the MCC Output window (Figure 3-2). 1. The MCC configuration file is saved. If this is the first time the MCC configuration file has been saved, a Save dialog box appears. The user can specify a name for the MCC configuration or accept the default name MyConfig. 2. MCC generates code for the peripheral or library module if the module’s configuration has changed since the last time MCC generated code for that module. Note: The user can force all modules to be generated by MCC by right-clicking in the Project Resources window and selecting “Force Update”, before clicking on the Generate button. If MCC attempts to regenerate a file on the disk that has been modified outside of MCC, the MCC Merge window is displayed. The MCC Merge window allows the user to select whether to keep the modified file (default action), or to replace the modified content with the content generated by MCC. The MCC Merge window is discussed in Section 3.3.2 “The MCC Merge Window”. FIGURE 3-2: 2016 Microchip Technology Inc. MCC OUTPUT WINDOW DS40001829B-page 26 Generating MCC Drivers 3.3.1 Saving and Loading the MCC Configuration Saving and loading the MCC v3 configuration is integrated into the MPLAB X IDE Save and Load functions. The MCC v3 configuration is saved whenever the Generate button is pressed. The user can also save the MCC v3 configuration by clicking on the MPLAB X IDE Save tool, or selecting Save from the File menu (see Figure 2-17). The MCC v3 configuration file is included in the MPLAB X IDE project, under the Important Files folder. The configuration file uses the extension .mc3. Double-clicking on the MCC v3 configuration file will cause that MCC v3 configuration to be loaded (Figure 2-17). 3.3.2 The MCC Merge Window If any of the files generated by the MCC has been edited outside of MCC and saved to the disk, then the MCC Merge window will appear in the Composer Area. The MCC Merge window allows the user to decide whether to keep the edits, or to replace them with the MCC newly generated code. Note: User edits will never be overwritten by the MCC generated code, except by explicit user action in the MCC Merge window. When changes have been made both to a generated file and also in the MCC Composer window, the MCC Merge window shown in Figure 3-3 will be displayed. The MCC Merge window allows the user to resolve the conflicts between the newly generated file and the edits the user has made to the file. When the newly generated MCC content has been accepted by the user, MCC makes the changes to the file. To the MPLAB X IDE, these changes are the same as if the user typed in the new content. The normal MPLAB X IDE edit undo can be used in the MCC Merge operation. FIGURE 3-3: MCC MERGE WINDOW – FILE LIST A list of all the files that need to be merged is shown at the top of the MCC Merge window. The user must select each file in the list, in turn, to ensure that all of the newly generated code is incorporated into the project. 2016 Microchip Technology Inc. DS40001829B-page 27 Generating MCC Drivers At the top of the MCC Merge window, in the center margin, there is an arrow, as shown in Figure 3-4. Clicking on the arrow will replace all of the user edits in the current file with the MCC updated code that the MCC has just generated. The numbers above the arrow indicate the current difference and the total number of differences. FIGURE 3-4: MCC MERGE WINDOW – REPLACING ALL USER EDITS WITH MCC GENERATED CODE The individual lines of MCC Updated Code can be selected to replace the edited code. As shown in Figure 3-5, clicking on the arrows in the right margin of the left window will copy the MCC Updated Code to the generated driver file. Once the changes are accepted the Merge Tool will remove the highlighted file and highlight the next file on the list. To insure all updates are completed a warning will be generated if the Merge Tool is closed before all the changes are accepted. FIGURE 3-5: MCC MERGE WINDOW – REPLACING SINGLE CHANGES WITH MCC GENERATED CODE Note: Remember to merge the code for every file shown in the file list in the MCC Merge window. Note: Be sure to save all the changed files from the Merge. 2016 Microchip Technology Inc. DS40001829B-page 28 MPLAB® CODE CONFIGURATOR V3.XX USER’S GUIDE Chapter 4. Generated Sources and Header Files The generated drivers will be included in the active MPLAB® X IDE project, as shown in Figure 4-1. FIGURE 4-1: 1. 2. 3. 4. 5. GENERATED SOURCE AND HEADER FILES The mcc.h and mcc.c files include the definitions of Configuration bits and the OSCILLATOR_initializer function. These definitions are based on the settings which were made for the System module in the Composer. Also included is the SYSTEM_initializer function which can be called in the application program to call all the other default initializers (the ones marked in the GUI by sprocket symbol). The pin_manager.h and pin_manager.c files include the Pin Manager initializer functions based on the configurations which were made in the Pin Manager GUI. The interrupt_manager.h and interrupt_manager.c files are optional files which are generated only when peripheral interrupts are enabled and they include interrupt initializer functions. The .c and .h are module specific files and include each module’s peripheral\library configuration functions. The main.c file is generated only when the MCC detects that there is no main.c file present in the project. If there is any previous main.c in the project regardless of its creator (the user or the MCC), it will not generate or overwrite the existing one. When using a main.c not generated by the MCC the lines: “#include”, “mcc_generated_files/mcc.h”, and SYSTEM_Initializer() need to be added to the main.c file. The main.c file generated by the MCC may include commented out code lines to enable interrupts. Remove the comments from the appropriate lines if the application requires interrupts to be enabled when it starts. 2016 Microchip Technology Inc. DS40001829B-page 29 Generated Sources and Header Files The Functions provided in any of these MCC generated files can be called from the user application code, as required. The MPLAB X IDE provides auto-completion assistance of all of the MCC generated content. While editing source code in the project, start typing in a MCC API, or MCC variable name, and press <CTRL+ Space>. The MPLAB X IDE will show a list of options to complete the entry. 2016 Microchip Technology Inc. DS40001829B-page 30 MPLAB® CODE CONFIGURATOR V3.XX USER’S GUIDE Chapter 5. MCC Device Migration Using a MCC configuration created for one device, on a different device is called MCC device migration. Note: MCC device migration is not supported in MCC. It is possible that attempting to use a MCC configuration on a device other than the one for which it was created, might appear not to fail. It is wholly the responsibility of the user to determine if the MCC code generated as the result of device migration is suitable for use in their application. Unintended MCC device migration may occur if the selected device in the MPLAB X IDE project is changed after MCC has been configured for that project. Copying a MCC v3 configuration file (*.mc3) to another MPLAB X IDE project may also cause MCC device migration or other unintended operation. 2016 Microchip Technology Inc. DS40001829B-page 31 Worldwide Sales and Service AMERICAS ASIA/PACIFIC ASIA/PACIFIC EUROPE Corporate Office 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: http://www.microchip.com/ support Web Address: www.microchip.com Asia Pacific Office Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon China - Xiamen Tel: 86-592-2388138 Fax: 86-592-2388130 Austria - Wels Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 China - Zhuhai Tel: 86-756-3210040 Fax: 86-756-3210049 Denmark - Copenhagen Tel: 45-4450-2828 Fax: 45-4485-2829 India - Bangalore Tel: 91-80-3090-4444 Fax: 91-80-3090-4123 France - Paris Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 India - New Delhi Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 Germany - Dusseldorf Tel: 49-2129-3766400 Atlanta Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 Hong Kong Tel: 852-2943-5100 Fax: 852-2401-3431 Australia - Sydney Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 China - Beijing Tel: 86-10-8569-7000 Fax: 86-10-8528-2104 Austin, TX Tel: 512-257-3370 China - Chengdu Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 Boston Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 China - Chongqing Tel: 86-23-8980-9588 Fax: 86-23-8980-9500 Chicago Itasca, IL Tel: 630-285-0071 Fax: 630-285-0075 Cleveland Independence, OH Tel: 216-447-0464 Fax: 216-447-0643 Dallas Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 Detroit Novi, MI Tel: 248-848-4000 Houston, TX Tel: 281-894-5983 Indianapolis Noblesville, IN Tel: 317-773-8323 Fax: 317-773-5453 Los Angeles Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 New York, NY Tel: 631-435-6000 San Jose, CA Tel: 408-735-9110 Canada - Toronto Tel: 905-673-0699 Fax: 905-673-6509 China - Dongguan Tel: 86-769-8702-9880 China - Hangzhou Tel: 86-571-8792-8115 Fax: 86-571-8792-8116 India - Pune Tel: 91-20-3019-1500 Japan - Osaka Tel: 81-6-6152-7160 Fax: 81-6-6152-9310 Japan - Tokyo Tel: 81-3-6880- 3770 Fax: 81-3-6880-3771 Korea - Daegu Tel: 82-53-744-4301 Fax: 82-53-744-4302 China - Hong Kong SAR Tel: 852-2943-5100 Fax: 852-2401-3431 Korea - Seoul Tel: 82-2-554-7200 Fax: 82-2-558-5932 or 82-2-558-5934 China - Nanjing Tel: 86-25-8473-2460 Fax: 86-25-8473-2470 Malaysia - Kuala Lumpur Tel: 60-3-6201-9857 Fax: 60-3-6201-9859 China - Qingdao Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 Malaysia - Penang Tel: 60-4-227-8870 Fax: 60-4-227-4068 China - Shanghai Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 Philippines - Manila Tel: 63-2-634-9065 Fax: 63-2-634-9069 China - Shenyang Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 Singapore Tel: 65-6334-8870 Fax: 65-6334-8850 China - Shenzhen Tel: 86-755-8864-2200 Fax: 86-755-8203-1760 Taiwan - Hsin Chu Tel: 886-3-5778-366 Fax: 886-3-5770-955 China - Wuhan Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 Taiwan - Kaohsiung Tel: 886-7-213-7828 China - Xian Tel: 86-29-8833-7252 Fax: 86-29-8833-7256 Germany - Karlsruhe Tel: 49-721-625370 Germany - Munich Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 Italy - Milan Tel: 39-0331-742611 Fax: 39-0331-466781 Italy - Venice Tel: 39-049-7625286 Netherlands - Drunen Tel: 31-416-690399 Fax: 31-416-690340 Poland - Warsaw Tel: 48-22-3325737 Spain - Madrid Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 Sweden - Stockholm Tel: 46-8-5090-4654 UK - Wokingham Tel: 44-118-921-5800 Fax: 44-118-921-5820 Taiwan - Taipei Tel: 886-2-2508-8600 Fax: 886-2-2508-0102 Thailand - Bangkok Tel: 66-2-694-1351 Fax: 66-2-694-1350 07/14/15 2016 Microchip Technology Inc. DS40001829B-page 32