1 开发板使用飞凌嵌入式A40i,测试发现老版本不支持PWM,和技术售后沟通后,使用新版本测试,发现支持。
2 对比新老版本的内核,发现linux驱动程序里面有增加了一个驱动文件sysfs.c,默认内核默认配置文件里面通过CONFIG_PWM_SYSFS=y,开启编译文件。
3 按照新版本内核修改core.c和pwm-sunxi-new.c文件,其中编译时会提示报错 PWMF_EXPORTED这个没有定义,按照新版本内核里include/linux、pwm.h文件内容对应修改。
4 再次编译通过后。输入测试指令后能正确输出pwm波形。
5 测试指令
echo 2 >/sys/class/pwm/pwmchip0/export
echo 1000000 > /sys/class/pwm/pwmchip0/pwm2/period
echo 500000 > /sys/class/pwm/pwmchip0/pwm2/duty_cycle
echo 1 > /sys/class/pwm/pwmchip0/pwm2/enable
测量得到频率为1K方波 ,注意的是设置时候频率值不能小于占空比值。还有设置后不支持中途修改,修改后好像也没有生效。
源码https://download.csdn.net/download/u011558786/15558430
pwm添加方法https://download.csdn.net/download/u011558786/15558292