This is an old revision of the document!
This document mainly describes the usage of hardware PWM. You will learn how to control the hardware PWM on the 40-Pin Header.
PWM | PIN & GPIO Number | DT Overlays Node | Device Node |
---|---|---|---|
PWM_AO_A | PIN35 - GPIOAO_3 (#504) | pwm_ao_a | /sys/class/pwm/pwmchip4 |
PWM | PIN & GPIO Number | DT Overlays Node | Device Node |
---|---|---|---|
PWM_D | PIN35 - GPIODV_28 (#478) | pwm_d | /sys/class/pwm/pwmchip1/pwm1 |
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 | 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 |
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
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.
If you use an oscilloscope to view the PWM waveform, remember that the SBC and the oscilloscope need to share the same GND (ground).
$ echo 0 | sudo tee /sys/class/pwm/pwmchip4/pwm1/enable
$ echo 0 | sudo tee /sys/class/pwm/pwmchip1/pwm1/enable