pwm 软件接口原理是往一个设备系统文件写入字符串,字符串的内容即参数内容。
文件路径:/sys/bus/platform/drivers/mt-pwm/pwm_debug
字符串内容有5个数字组成,代表5个参数,参数间加空格,如 “4 50 0 0 40”
pwm 设置5个参数代表的意思:
第一个参数代表pwm编号,取值范围0-4
第二个参数代表占空比,取值范围1-100
第三个参数代表时钟源,取值范围0-3,0大概时钟源是6MHz
第四个参数代表时钟分频系数,取值范围>=0
第五个参数代表duration, 取值范围>0, 该值乘以2等于一个pwm周期由几个clk组成。
可以用adb 指令在开发板上测试,举例:
adb shell "echo -wmode 60 5 > /sys/devices/virtual/misc/mtgpio/pin"
adb shell "echo 4 50 0 0 40 > /sys/bus/platform/drivers/mt-pwm/pwm_debug"
第一条指令的作用:
把gpio60设为模式5,
gpio60是软件编号,对应的实际m100模块引脚请下面文档。
m100_evb_Customer_GPIO_Formal_Application_Spec_v3.xlsx.zip
模式5为pwm4 功能。每个gpio都是多功能的,也请参考上述文档。
第二条指令的作用:
配置pwm4的参数,5个参数依次是 4 50 0 0 40
**
如果写java app, 往上述文件/sys/bus/platform/drivers/mt-pwm/pwm_debug 写 “4 50 0 0 40”即可。
写之前可能还要设置下gpio模式让它工作在pwm模式,java设置gpio模式的方法请参考下面文档
https://www.temolin.com/doc/134/gpio-api
所用函数:setMuxMode(String mode)