Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


Sidebar

products:sbc:common:applications:gpio:pwm

This is an old revision of the document!


PWM

Introduction

This document mainly describes the usage of hardware PWM. You will learn how to control the hardware PWM on the 40-Pin Header.

PWM Information

VIM1

PWM PIN & GPIO Number DT Overlays Node Device Node
PWM_AO_A PIN35 - GPIOAO_3 (#504) pwm_ao_a /sys/class/pwm/pwmchip4

VIM1

PWM PIN & GPIO Number DT Overlays Node Device Node
PWM_AO_A PIN35 - GPIOAO_3 (#504) pwm_ao_a /sys/class/pwm/pwmchip4

VIM3/3L

I2C PIN & GPIO Number DT Overlays Node Bus Number Device Node
I2CM 3 SCL(22) - GPIOA_15 (#475)
SDA(23) - GPIOA_14 (#474)
i2c3 3 /dev/i2c-3
I2C AO SCL(25) - GPIOAO_2 (#498)
SDA(26) - GPIOAO_3 (#499)
- 4 /dev/i2c-4

VIM4

I2C PIN & GPIO Number DT Overlays Node Bus Number Device Node
I2CM F SCL(22) - GPIOY_17 (#501)
SDA (23) - GPIOY_18 (#502)
i2cm_f 5 /dev/i2c-5
I2CM A SCL(25) - GPIOT_20 (#466)
SDA(26) - GPIOT_21 (#467)
i2cm_a 0 /dev/i2c-0

Enable PWM

VIM1/3/3L/4

PWM_F:

$ echo 1 | sudo tee /sys/class/pwm/pwmchip4/export
$ echo 1000000 | sudo tee /sys/class/pwm/pwmchip4/pwm1/period
$ echo 500000 | sudo tee /sys/class/pwm/pwmchip4/pwm1/duty_cycle
$ echo 1 | sudo tee /sys/class/pwm/pwmchip4/pwm1/enable

VIM2

PWM_D:

$ echo 1 | sudo tee /sys/class/pwm/pwmchip1/export
$ echo 1000000 | sudo tee /sys/class/pwm/pwmchip1/pwm1/period
$ echo 500000 | sudo tee /sys/class/pwm/pwmchip1/pwm1/duty_cycle
$ echo 1 | sudo tee /sys/class/pwm/pwmchip1/pwm1/enable

Use an oscilloscope to check if the pins have been successfully enabled.

pwm-oscilloscope

If you use an oscilloscope to view the PWM waveform, remember that the SBC and the oscilloscope need to share the same GND (ground).

Disable PWM

VIM1/3/3L/4

$ echo 0 | sudo tee /sys/class/pwm/pwmchip4/pwm1/enable

VIM2

$ echo 0 | sudo tee /sys/class/pwm/pwmchip1/pwm1/enable
Last modified: 2022/07/12 05:48 by nick