Quickstart Curiosity 2.0 PIC32MZEF Development Board - mchpgfx/legato.docs GitHub Wiki
Quickstart Curiosity 2.0 PIC32MZEF Development Board
This guide describes the basic steps to create a graphics-enabled application.
Who should use this guide.
This guide is intended for developers who are building applications on a custom SAME54 board similar to or the same as the Curiosity PIC32MZEF Development Board connected to a WQVGA.
What you will build
You will build a simple application that displays an image, textm, and touch button. It starts with the creation of a new MPLAB® project and finishes with a graphics application equivalent to legato_quickstart.
The demonstration will render the following image on the display:
Contents
The following bullets detail the steps necessary to create a solution for your board.
- Get Materials
- Create a new project
- Configure Software with MHC
- Create UI Design with Legato Composer
- Save Project
- Generate, Build, and Run
Get Materials
Before you begin this quick start, make sure you have what you will need. The Microchip development documentation and hardware provides a basic foundation that we will use as a reference for your SAM E54 design.
Documentation | Description |
---|---|
PIC32MZ EF Curiosity Development Board User’s Guide | User guide and schematics |
Hardware | Description |
---|---|
Curiosity PIC32MZEF Development Board | Development Board |
WQVGA Display Module (AC320005-4). | High-Performance 4.3" WQVGA Display Module |
Standard USB A to micro-B cable | PC debugging connector. |
NOTE: The Curiosity PIC32MZEF Development Board includes an on-board Embedded Debugger (EDBG), which requires no additional hardware to get started. For programming/debugging, the EDBG connects to the host PC through the USB micro-B connector on the Curiosity PIC32MZEF Development Board.
Software | Description | Install |
---|---|---|
MPLAB® X Integrated Development Environment | v5.15 or later | Install MPLAB® IDE |
MPLAB® XC32/32++ C Compiler | v2.20 or later | Install Compiler |
MPLAB® Harmony 3 | v3.5 or later | Install Harmony v3 |
NOTE: This project has been verified to work with the following versions of software tools: MPLAB® X IDE v5.20, MPLAB® XC32 Compiler v2.20, MPLAB® Harmony v3.6.0
NOTE: Because we regularly update our tools, occasionally you may discover an issue while using the newer versions. If you suspect that to be the case, we recommend that you use the same versions that the project was tested with.
Hardware Setup
Configure the hardware as follows:
Curiosity PIC32MZEF Development Board is connected to the display using the display ribbon cable. Programming is a board to PC link using a standard USB A to micro-B cable. The connection, illustrated below, provides power and debug communication.
If your WQVGA display cable is connected to a interposer board, following these steps:
- Disconnect the ribbon cable that connects the display to the interposer board. The board is for the MEB 2 only, and not used with the Curiosity PIC32MZEF Development Board.
- Release the ribbon cable from the interposer board.
- Release the black clamp on the PIC32MZEF’s J2 connector and turn the display over.
- Insert the ribbon cable into J2 and close the clamp.
The board and display are powered by a Micro B – USB A cable from PC to the “USB Debug” port on the Curiosity PIC32MZEF Development Board.
Create a new project
-
Launch the New Project wizard. Select File > New Project from the main IDE menu.
-
In the Categories pane of the New Project dialog, select Microchip Embedded. In the Projects pane, select 32-bit MPLAB® Harmony 3 Project, then click Next.
NOTE: If 32-Bit MPLAB® Harmony 3 Project selection is not displayed, Download MPLAB® Harmony Framework.
- In the Framework Path edit box, browse to the folder you downloaded the framework to. If you haven't done this, or want to download it to a different folder, click the Launch Framework Downloader button, then click Next.
NOTE: For more information on the framework downloader, see the, Download MPLAB® Harmony Framework section of the "MPLAB® Harmony Configurator Overview" page.
-
In the Project Settings window, apply the following settings:
- Location: Indicates the path to the root folder of the new project. All project files will be placed inside this folder. The project location can be any valid path, for example: C:\microchip\harmony\v3.
- Folder: Indicates the name of the MPLABX .X folder. Enter “pic32_mzef” to create a pic32_mzef.X folder.
- Name: Enter the project’s logical name as “my_board”. This is the name that will be shown from within the MPLAB® X IDE.
NOTE: This must be a valid directory name for your operating system. The Path box is read-only. It will update as you make changes to the other entries.
* Click Next to proceed to Configuration Settings.
-
Follow the steps below to set the project’s Configuration Settings.
- Name: Enter the configuration name as “pic32_mzef”.
- Target Device: Select “PIC32MZ2048EFM144” as the target device.
- Click Finish to launch the MHC.
NOTE: You can select the Device Family or enter a partial device name to filter the list in Target Device in order to make it easier to locate the desired device.
- Click Launch to launch the MHC Configurator tool with the selected packages.
- Launching MPLAB® Harmony Configurator. The following message will be displayed while the project is loaded into MPLAB® X.
- The MHC plugin’s main window for the project will be displayed. This is the initial project graph.
- Before proceeding, set up the compiler toolchain. Click on the Projects tab on the top left pane. Right click on the project name my_board and go to Properties.
Make sure that XC32 (v2.20) is selected as the Compiler Toolchain for XC32. Click on Apply and then click on OK.
Verify Clock Settings
- Launch Clock Diagram by going to MHC tab in MPLABX IDE and then select Tools > Clock Configuration.
A new tab, Clock Diagram, is opened in the project’s main window.
- Click on the Clock Diagram tab, scroll to the right and verify that SYSCLK is set to 200 MHz.
Configure Software
- Because this is a Harmony based application, you will need to use the Harmony Core Service Component.
Under the bottom left tab, Available Components, expand Harmony. Double click or drag and drop Core to add the Harmony Core Service to the project graph. When prompted to activate FreeRTOS, click No.
- You will also need the Time System Service.
NOTE: Harmony components lists Current Consumers and Available Consumers when a right click occurs on the circle icons.
- On the Harmony Core Service component, right click the Core Service icon on Harmony Core Service component, select Available Consumers, then select TIME.
- On the Time System Service component, right click the TMR icon, select CORE_TIMER(core_timer).
Because this is a GFX enabled application, you will need to select a graphics library. For this tutorial, we will use Aria.
-
Under the bottom left tab, Available Components, expand Graphics>Middleware. Double click or drag and drop Aria to add the Aria graphics library to the project graph.
-
On the Aria component, right click the GFX HAL, select Satisfiers, and select GFX Core.
- On the GFX Core component, right click the Display Driver icon, select Satisfiers, and select LCC.
- On the LCC component, right click EBI_CS diamond icon, select Satisfiers, and select EBI (ebi).
- On the GFX Core component, right click Graphics Display diamond icon, select Satisfiers, and select PDA TM4301B (gfx_disp_pdatm4301b_480x272).
- On the PDA TM4301B component, right click Touch Panel diamond icon, select Consumers, and select MaXTouch Controller (gfx_maxtouch_controller).
- On the MaXTouch Controller component, right click DRV_I2C diamond icon, select Satisfiers, and select I2C (drv_i2c).
- On the MaXTouch Controller component, right click Input System Service circle icon, select Available Satisfiers, and select Input System Service (sys_input).
- On the I2C Driver component, right click Input I2C diamond icon, select Satisfiers, and select I2C1 (i2c1).
On completion, your Project Graph window should look similar to the following image:
If the display needs to be configured, then you will need to launch Display Manager. For this tutorial, Display Managing is not required. See Getting started with Display Manager for more information.
Configure Hardware
In this step, you will need to connect the PIC32MZ EF to the external touch controller and display modules.
Using the Curiosity PIC32MZ EF 2.0 Development Board schematic obtained from the user guide.
NOTE: If you are using a schematic for your custom board, map the required graphics pins to your board.
NOTE: the drv_maxtouch and drv_gfx_lcc drivers require specific names for its pins. If you do not have the correct pin names a compiler output will display an error along with the expected name.
The pin mapping table below is made available for convenience.
Required Pin Settings
Ball/Pin Number | Pin ID | Name | Function | Direction | Latch |
---|---|---|---|---|---|
B9 | RB1 | BSP_MAXTOUCH_CHG | GPIO | In | |
M11 | RA14 | SCL1 | SCL1 | ||
N11 | RA15 | SDA1 | SDA1 | ||
M3 | RE3 | TM4301B_BACKLIGHT | GPIO | OUT | High |
- Open the Pin Configuration tabs by clicking MHC > Tools > Pin Configuration.
- Select the MHC Pin Settings tab and sort the entries by Port names as shown below.
- Use the table above to establish your Pin Settings.
Generate Code
- When done, before generating code, click Save MHC State as shown below.
-
Save the configuration in its default location when prompted.
-
Generate the code as shown below.
- Click on the Generate button in the Generate Project window, keeping the default settings as shown below. If prompted for saving the configuration, click Save.
- As the code is generated, MHC displays the progress as shown below.
- Examine the generated code.
MHC will include all the MPLAB® Harmony library files and generate the code based on the MHC selections. The generated code would add files and folders to your Harmony project
-
Navigate to the Projects tab to view the project tree structure.
-
Build the code by clicking on the Clean and Build icon and verify that the project builds successfully.
Add application UI code to project
The UI design is already developed. Use Graphics Composer to insert the design into your project.
Launch the Graphics Composer from the MHC/Tools Menu:
- When MHGC’s Welcome Dialog is displayed. Click the Create a new project using the new project wizard button.
If the Welcome Dialog does not appear, it is because it had been disabled previously. The Welcome Dialog can be re-enabled by using MHGC’s File > Settings > General menu:
- In the MPLAB® Harmony Graphics Composer (MHGC) screen use the left-most icon to create a new graphics design.
In the New Project Wizard, for the Color Mode step,
- Select
RGB_565
- Click NEXT.
Memory Size
For the Memory Size step, accept the default Flash Memory Size and click NEXT. It is not recommended to change this setting for this tutorial.
Project Type
For the Project Type step, chose the second option create a new project using a basic template and click NEXT.
The MHGC window will display the following image:
You are now ready to build the code!
Build, program and observe outputs
-
Verify that the display is connected to GFX Connector on the Curiosity PIC32MZ EF 2.0 Development Board.
-
The Curiosity PIC32MZ EF 2.0 Development Board allows using the Embedded Debugger (EDBG ) for debugging. Connect the Type-A male to micro-B USB cable to micro-B DEBUG USB port to power and debug the Curiosity PIC32MZ EF 2.0 Development Board.
-
Go to File > Project Properties and make sure that the EDBG is selected as the debugger under the Hardware Tools and XC32 (v2.20) is selected as the Compiler Toolchain for XC32.
-
Clean and build your application by clicking on the Clean and Build button as shown below.
- Program your application to the device, by clicking on the Make and Program button as shown below.
The application should build and program successfully. A compilation error could occur if a pin name is undefined. For example:
The demonstration will display the following UI:
Review
You have successfully created an application using MPLAB® Harmony v3 on Curiosity PIC32MZ EF 2.0. Your application used all the fundamental elements that go in building a graphics application. Your application successfully rendered a UI to the High-Performance 4.3" WQVGA Display Module. The application also took user from the display module.
In this application, you used MPLAB® Harmony Configurator (MHC) to configure Curiosity PIC32MZ EF 2.0. You used MHC to add and connect components. You used Pin Configurator to set up the pins for display and maXTouch controller.
Summary
This guide provided you training of configuring and using all the fundamental components needed to build a graphics application on a Curiosity PIC32MZ EF 2.0 Development Board with MPLAB® Harmony v3 Framework. As a next step, you may customize this application and reconfigure some of the components used in this tutorial. You could also add new components (PLIBs, etc.) to enhance this application to realize your end application.
Next Steps
- Learn how to add events to the project: Adding Event to a Graphics Application
Is this page helpful? Send feedback.