MPLAB® Harmony v3 Drivers on SAM E54 MCUs Using FreeRTOS™: Step 6

Last modified by Microchip on 2023/11/15 13:29

Build, Program, and Observe the Outputs

Verify that the temperature sensor (I/O1 Xplained Pro Extension Kit) is connected to the Extension Header 1 (EXT1) on the SAM E54 Xplained Pro Evaluation Kit.

Connected to the Extension Header 1

Back to Top


The SAM E54 Xplained Pro Evaluation Kit allows the Embedded Debugger (EDBG) to be used for debugging.

Connect the Type-A male to Micro-B USB cable to the Micro-B DEBUG USB port to power and debug the SAM E54 Xplained Pro Evaluation Kit.

Connect the Type-A male to Micro-B USB cable to the Micro-B DEBUG USB port

Back to Top


Go to File > Project Properties and make sure that the EDBG is selected as the debugger under the Hardware Tools and XC32 (v2.50) is selected as the Compiler Toolchain for XC32.

Make sure XC32 (v4.30) is selected as the Compiler Toolchain for XC32

Back to Top


Clean and build the application by clicking on the Clean and Build button.

clean build

Back to Top


Program the application to the device by clicking on the Make and Program button.

burn code icon

The lab should build and program successfully.

Back to Top


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

Tera term new connection window

Back to Top


Select Setup > Serial port and change the Baud rate to 115200.

Select Setup > Serial port

Change the Baud rate to 115200

Back to Top


It can be observed that the temperature values (in °F) are being displayed on the terminal every second.

temperature values

Also, notice the LED0 blinking at a one-second rate.

Back to Top


Press any character on the terminal to display the last five values written to the Electrically Erasable Programmable Read-Only Memory (EEPROM).

Last five temperature values

Back to Top


The temperature can be varied by placing your finger on the temperature sensor (for a few seconds).

The temperature can be varied by placing your finger on the temperature sensor

Back to Top


Results

This application displayed the current room temperature values on the serial terminal every second. In addition, the application retrieved and printed (on the serial terminal) the last five stored temperature values from EEPROM every time a character was entered on the serial terminal. It was also observed that a user LED toggled every time the current temperature was displayed on the serial terminal.

Back to Top

Analysis

Your first application using MPLAB® Harmony v3 on a SAM E54 microcontroller has been successfully created. This application used all the fundamental elements that go into building a real-time application and successfully read temperature sensor values and display them periodically over a serial terminal on a PC. While the temperature values were printed on the serial terminal, the application stored the temperature values into EEPROM. The application retrieved the last five values stored in EEPROM and displayed them on the serial terminal when a user requested them (by entering a character on the serial terminal).

In this application, MPLAB Code Configurator (MCC) was used to configure the SAM E54 and to use the MPLAB Harmony v3 Framework. The clock configurator was used to set up the CPU clock and verify the peripheral clocks. SERCOM3, SERCOM2 were configured as I2C, and Universal Synchronous Asynchronous Receiver Transmitter (USART) respectively. The Pin Configurator was used to set up the pins for the LED and peripheral (USART, I2C) pins. The entire application was built using FreeRTOS™ and configurations for FreeRTOS threads, stack, and heap size for the application threads were done in this application.

Back to Top

Conclusions

This tutorial provides the training for configuring and using all the fundamental components needed to build a real-time application using FreeRTOS on a SAM E54 microcontroller with the MPLAB Harmony v3 Framework. As a next step, developers may customize this application and reconfigure some of the components used in this tutorial as well as add new components (Drivers, etc.), and additional threads to achieve the desired end application.

Back to Top