This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ===== Using PWM from sysfs ===== <WRAP round info 50%> following Instuction only works for Linux kernel 3.11 or greater </WRAP> ==== Where to find PWM devices in sysfs ==== PWM devices are listed under **/sys/class/pwm** ==== export PWM device ==== <WRAP round important 50%> You must export the PWM at first, otherwise the other commands in this tutorial will not work </WRAP> <code> root@MBaXXX:~ cd /sys/class/pwm // enter pwm folder in sysfs root@MBaXXX:/sys/class/pwm cd pwmchip<pwmchipnr> // enter the desired pwmchip folder root@MBaXXX:/sys/your/path/to/pwmchip/pwmchip<pwmchipnr> echo <pwmnr> > export // export device PWM<pwmnr> root@MBaXXX:/sys/your/path/to/pwmchip/pwmchip<pwmchipnr> cd pwm<pwmnr> // enter exported pwm device folder </code> ++++ example | <code> root@MBaXXX:~ cd /sys/class/pwm root@MBaXXX:/sys/class/pwm cd pwmchip0 root@MBaXXX:/sys/class/pwmchip0 echo 0 > export root@MBaXXX:/sys/class/pwnchip0 cd pwm0 </code> ++++ ==== set PWM period ==== <code> root@MBaXXX:~ echo <value in nanoseconds> > /sys/class/pwm/pwmchip<pwmchipnr>/pwm<pwmnr>period </code> ++++ example | <code> root@MBaXXX:~ echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/period </code> ++++ ==== set PWM duty cycle ==== <WRAP round important 50%> The value of duty cycle must be less than the value of pwm period </WRAP> <code> root@MBaXXX:~ echo <value in nanoseconds> > /sys/class/pwm/pwmchip<pwmchipnr>/pwm<pwmnr>duty_cycle </code> ++++ example | <code> root@MBaXXX:~ echo <value in nanoseconds> > /sys/class/pwm/pwmchip0/pwm0/duty_cycle </code> ++++ ==== change polarity of the PWM signal ==== <code> root@MBaXXX:~ echo "normal" > /sys/class/pwm/pwmchip<pwmchipnr>/pwm<pwmnr>/polarity // set polarity to normal root@MBaXXX:~ echo "inversed" > /sys/class/pwm/pwmchip<pwmchipnr>/pwm<pwmnr>/polarity // set polarity to inversed </code> ++++ example | <code> root@MBaXXX:~ echo "normal" > /sys/class/pwm/pwmchip0/pwm0/polarity root@MBaXXX:~ echo "inversed" > /sys/class/pwm/pwmchip0/pwm0/polarity </code> ++++ ==== enable PWM ==== <code> root@MBaXXX: echo 1 > /sys/class/pwm/pwmchip<pwmchipnr>/pwm<pwmnr>/enable </code> ++++ example | <code> root@MBaXXX: echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable </code> ++++ ==== disable PWM ==== <code> root@MBaXXX: echo 0 > /sys/class/pwm/pwmchip<pwmchipnr>/pwm<pwmnr>/enable </code> ++++ example | <code> root@MBaXXX: echo 0 > /sys/class/pwm/pwmchip0/pwm0/enable </code> ++++ Last modified: 2022/08/04 15:02