Harmony v3 Peripheral Libraries on PIC32MZ EF: Step 6

Step 6: Build, program, and observe the outputs

1

Verify that the temperature sensor (I/O1 Xplained Pro Extension Kit) is connected to J501 (Extension Header 1 (EXT1)) on the Curiosity PIC32MZ EF 2.0 Development Board.

hw_setup1.png

2

The Curiosity PIC32MZ EF 2.0 Development Board allows using the PICkit™ On Board 4 (PKoB 4) for debugging. Connect the Type-A male to micro-B USB cable to the micro-B DEBUG USB port to power and debug the Curiosity PIC32MZ EF 2.0 Development Board.

hw_setup3.png

3

Go to File > Project Properties and make sure that the PKoB 4 is selected as the debugger under the Hardware Tools, and XC32 (v4.30) is selected as the Compiler Toolchain for XC32.

compiler_setup.png

4

Clean and build your application by clicking on the Clean and Build button as shown in the accompanying image.

clean_and_build_icon.png

5

Program your application to the device by clicking on the Make and Program button as shown in the accompanying image.

make_and_program.png

The lab should build and program successfully.

6

Now, open the Tera Term terminal application on your PC (from the Windows® Start menu by pressing the Start button). Select the Serial Port as shown in the accompanying image.

com_port_setup1.png

7

Change the baud rate to 115200.

com_port_setup2.png
baud_rate_setup.png

8

You should see the temperature values (in °F) being displayed on the terminal every 500 milliseconds, as shown in the accompanying image.

result1.png

Also, notice LED1 blinking at a 500 millisecond rate.

9

You may vary the temperature by placing your finger on the temperature sensor (for a few seconds).

temp_sensor_placement.png

10

Press the SW1 switch on the Curiosity PIC32MZ EF 2.0 Development Board to change the default sampling rate to one second.

user_button_placement.png
result2.png

11

Every subsequent press of switch SW1 on the Curiosity PIC32MZ EF 2.0 Development Board changes the default sampling rate to two seconds, four seconds, 500 milliseconds, and back to one second in cyclic order as shown in the accompanying image.

result3.png

While the temperature sampling rate changes on every switch SW1 press, notice LED1 toggling at the same sampling rate.

Results

You observed that the application displayed the current room temperature values on the serial terminal every 500 milliseconds. You were able to change the temperature sampling values dynamically by pressing a user switch on the development kit. You could exercise sampling changes to one second, two seconds, or four seconds, and cycle back to 500 milliseconds every time you pressed the user switch. You also observed that a user LED was toggled every time the current temperature was displayed on the serial terminal.

Analysis

You have successfully created your first application using MPLAB® Harmony v3 on the PIC32MZ EF microcontroller. Your application used all the fundamental elements that go into building a real-time application. Your application successfully read temperature sensor values and displayed them periodically over a serial terminal on a PC. The application also took user input by pressing a switch on the development board.

In this application, you used MPLAB Code Configurator (MCC) to configure a PIC32MZ EF and to use the MPLAB Harmony v3 Framework. You used the clock configurator to set up the CPU clock and timer (Timer1) clock. You configured the I²C1, UART6, TMR1, and GPIO peripheral libraries. You also configured Direct Memory Access (DMA) using the DMA configurator. You used the pin configurator to set up the pins for LED and switch functions.

Conclusions

This tutorial provided training for configuring and using all the fundamental components needed to build a real-time application on a PIC32MZ EF microcontroller with the 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.

© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site 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.