MPLAB® Harmony v3 Drivers on SAM C21 Using FreeRTOS: Step 6

Last modified by Microchip on 2023/11/09 09:08

Build, Program, and Observe the Outputs

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

Verify that the temperature sensor (I/O1 Xplained Pro Extension Kit) is connected to the Extension Header 1

The SAM C21 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 C21 Xplained Pro Evaluation Kit.

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

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.

Open the project properties

Clean and build your application by clicking on the Clean and Build icon.

Click the clean and build icon

Program your application to the device by clicking on the Make and Program icon.

Click on the make and program icon

The lab will build and program successfully.

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

Select COM8: EDBG Virtual COM Port as the Serial Port.

Open the Tera Term terminal application

Change the baud rate to 115200.

Open the Serial Port

Change the baud rate

You will see the temperature values (in °C) being displayed on the terminal every second.

The temperature values are displayed on the terminal every second

Also, notice the LED0 blinking at the rate of 1 second.

Press any character on the terminal to display the last five values written to the EEPROM.

Press any character on the terminal to display the last five values written to the EEPROM

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

You can vary the temperature by placing your finger on the temperature sensor


Results

You observed that the application displayed the current room temperature values on the serial terminal every second. Also, you observed that the application retrieved and printed (on the serial terminal) the last five stored temperature values from EEPROM every time you entered a character on the serial terminal. You also observed that a user LED0 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 SAM C21 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. While the temperature values were getting printed on the serial terminal, the application stored the temperature values into an 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, you used MPLAB Harmony Configurator (MHC) to configure SAM C21 and to use the MPLAB Harmony v3 Framework. You verified the clock configurator to set up the CPU clock and peripheral clocks. You configured SERCOM2 as I²C, and SERCOM4 as Universal Synchronous Asynchronous Receiver Transmitter (USART). You used Pin Configurator(BSP) to set up the pins for LED and peripheral (USART, I²C) pins. You built this application using FreeRTOS. You created FreeRTOS threads and configured FreeRTOS stack, and heap size for the application threads.

Conclusions

This tutorial provided you with the training for configuring and using all the fundamental components needed to build a real-time application using FreeRTOS on a SAM C21 microcontroller 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 (Drivers, etc.), and additional threads to enhance this application to realize your end application.