LED Brightness using PWM via PDL

Lab 110

Lab Objective:

This Lab demonstrates the process of controlling an LED brightness using PWM via Peripheral Driver Library (PDL) on a PSoC 6 microcontroller.

🔥 Requirements

ResourcesLinks

Computer

💻

ModusToolbox™ software v3.0 or later

CY8CKIT-062S2-43012 Infineon Board

Technical Report

🚩 Let start

Create Application

Use Device Configurator and set the button pin to have a falling edge interrupt.

Coding

  • Coding: Open the main.c file and add the following code to the main(void) function.

main.c
#include "cy_pdl.h"
#include "cybsp.h"

int main(void)
{
    cy_rslt_t result;

    /* Initialize the device and board peripherals */
    result = cybsp_init() ;
    if (result != CY_RSLT_SUCCESS)
    {
        CY_ASSERT(0);
    }

    /* Enable global interrupts */
    __enable_irq();

    // Initialize the TCPWM block
	Cy_TCPWM_PWM_Init(PWM_HW, PWM_NUM, &PWM_config);
	// Enable the TCPWM block
	Cy_TCPWM_PWM_Enable(PWM_HW, PWM_NUM);
	// Start the PWM
	Cy_TCPWM_TriggerReloadOrIndex(PWM_HW, PWM_MASK);

    for (;;)
    {
    	for(int i = 0; i < 500; i++){
    		Cy_TCPWM_PWM_SetCompare0(PWM_HW, PWM_NUM, i);
    		Cy_SysLib_Delay(10); // Delay 10 ms
    	}
    }
}

Build the Application

Launching the Application

Note: Before launching the program to the board, make sure that you have already connected the board to the computer through a USB cable.

Result

If you chose a period of 100, you can easily set the duty cycle from 0 to 100 by changing the compare value. Just be sure to use a clock that is fast enough so that even when divided by 100 it is faster than a human eye can see so that the LED appears dim instead of blinking

🎉 Congratulations! You can now complete Lab110

Supported toolchains (make variable 'TOOLCHAIN')

  • GNU Arm® embedded compiler v10.3.1 (GCC_ARM) - Default value of TOOLCHAIN

  • Arm® compiler v6.16 (ARM)

  • IAR C/C++ compiler v9.30.1 (IAR)

Supported kits (make variable 'TARGET')

ResourcesLinks

ModusToolbox™ Software Training

Other resources

Infineon provides a wealth of data at www.infineon.com to help you select the right device, and quickly and effectively integrate it into your design.

Document history

Document title: BILL_MTB-110 – LED Brightness using PWM via PDL

VersionDescription of change

1.0.0

Lab 110: Learn basic GPIO of controlling LED brightness using PWM via Peripheral Driver Library (PDL) on a PSoC 6 microcontroller.

Authors:

  • Assoc. Prof. Wiroon Sriborrirux

  • Mr. Sriengchhun Chheang

  • Mr. Sabol Socare


© BDH Corporation, 2022-2023

Last updated

Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University