~~tag>Edge-2L PWM~~ ====== Edge-2L PWM ====== ===== Introduction ===== This page explains how to use the hardware PWM (Pulse Width Modulation) and guides you through controlling it on the [[products:sbc:edge-2L:applications:gpio:40pin-header|16-Pin Header]]. To use the PWM functionality on the Edge-2L, you must attach the Edge-2L IO board. ===== PWM information ===== | ^ PWM ^ PIN ^ GPIO Name ^ GPIO Number ^ DT Overlays Node ^ Device Node ^ ^ Edge-2L | PWM1 | 14 | GPIO1_B4 | 44 | edge-2l-io-pwm | /sys/class/pwm/pwmchip0 | ===== Enable PWM ===== To use the hardware PWM, you must first enable it by applying a [[products:sbc:common:configurations:device-tree-overlay|Device Tree Overlay]]. Edit the file ''/boot/dtb/rockchip/rk3576-khadas-edge-2l.dtb.overlay.env'' and add the overlay ''edge-2l-io-pwm'' to the ''fdt_overlays'' parameter if it is not already present: ```shell fdt_overlays=edge-2l-io-pwm ``` Reboot the system for the change to take effect. After rebooting, verify that the PWM device node exists: ```shell $ ls /sys/class/pwm/pwmchip0 device export npwm power subsystem uevent unexport ``` ===== Disable PWM to use as GPIO ===== If you wish to use the pin as a standard GPIO instead of PWM, remove the ''edge-2l-io-pwm'' entry from the ''fdt_overlays'' parameter in the Device Tree Overlay configuration file and reboot. ===== Control PWM via sysfs===== **Enable and Configure PWM:** The following sequence enables PWM channel 0, sets a period of 1,000,000 nanoseconds (1 kHz), a duty cycle of 500,000 nanoseconds (50% duty), and starts the output: ```shell # Export PWM channel 0 $ echo 0 | sudo tee /sys/class/pwm/pwmchip0/export # Set period to 1,000,000 ns (1 kHz) $ echo 1000000 | sudo tee /sys/class/pwm/pwmchip0/pwm0/period # Set duty cycle to 500,000 ns (50%) $ echo 500000 | sudo tee /sys/class/pwm/pwmchip0/pwm0/duty_cycle # Enable PWM output $ echo 1 | sudo tee /sys/class/pwm/pwmchip0/pwm0/enable ``` Use an oscilloscope to verify the PWM signal on the corresponding pin. {{products:sbc:common:applications:gpio:pwm-oscilloscope.png|pwm-oscilloscope}} When using an oscilloscope to measure the PWM waveform, ensure that the Edge-2L's **GND** is connected to the oscilloscope's ground reference. **Disable PWM:** To stop the PWM signal: ```shell echo 0 | sudo tee /sys/class/pwm/pwmchip0/pwm0/enable ```