如何支持两路PWM以及动态调整PWM占空比

最近正在用VIM控制舵机,希望至少有两路硬件的PWM输出。
另外,需要使用python动态的调整PWM占空比,请问如何实现。

@jamin如果还有其他常规GPIO引脚,则可以尝试创建softPWM,

@jamin 硬件pwm只有一个,如果你要两路,建议你考虑软件PWM,但是软件PWM比较吃资源,如果你只是控制舵机的话,是可以尝试下软件pwm.

硬件PWM如何实时的控制,使用python的话?

@jamin 这个就需要你自己实现了,首先你要去了解一下硬件pwm是怎么控制的,

可以参照我们的文档.

然后在python上,你只要控制这些文件就行,最简单的就是直接用盘python调用系统命令.

也可以通过直接打开文件写的方式

如果要做到实时控制的话,这样会比较慢吧。

有没有系统的函数可以调用,直接写PWM的寄存器的。

@jamin 你可以参考有一下芯片手册


我这边只尝试过用python去写文件控制pwm.实际感受不出来差点,你可以先尝试看看


报这个问题怎么处理?

@jamin

khadas@Khadas:~$ su
Password: 
root@Khadas:/home/khadas# echo 1 > /sys/class/pwm/pwmchip4/export
root@Khadas:/home/khadas# echo 1000000 > /sys/class/pwm/pwmchip4/pwm1/period
root@Khadas:/home/khadas# echo 500000 > /sys/class/pwm/pwmchip4/pwm1/duty_cycle
root@Khadas:/home/khadas# echo 1 > /sys/class/pwm/pwmchip4/pwm1/enable
root@Khadas:/home/khadas# 

我这边运行未发现任何错误.你使用固件是哪一个?运行一个这个命令

root@Khadas:/home/khadas# cat /etc/fenix-release 
# PLEASE DO NOT EDIT THIS FILE
BOARD=VIM3
VENDOR=Amlogic
VERSION=0.9.7
ARCH=arm64
INITRD_ARCH=arm64
INSTALL_TYPE=EMMC
IMAGE_RELEASE_VERSION=V0.9.7-201126
################ GIT VERSION ################
UBOOT_GIT_VERSION=khadas-vims-v0.9.7-release
LINUX_GIT_VERSION=khadas-vims-v0.9.7-release
FENIX_GIT_VERSION=v0.9.7
#############################################

查看一下你的系统版本.

另外可以运行一下这个命令

root@Khadas:/home/khadas# cat /boot/env.txt | grep "overlays"
overlays=uart3 pwm_f i2c3 os08a10

确认下pwm_f是不是开启了

PLEASE DO NOT EDIT THIS FILE

BOARD=VIM3
VENDOR=Amlogic
VERSION=0.8.1
ARCH=arm64
INITRD_ARCH=arm64
INSTALL_TYPE=SD-USB
IMAGE_RELEASE_VERSION=V20191231

另外 运行这个命令没有任何显示
root@Khadas:/home/khadas/Desktop# cat /boot/env.txt | grep “overlays”
root@Khadas:/home/khadas/Desktop#

@jamin 你这个版本的固件太老了,升级到最新的版本把.