Share via Share via... Twitter Facebook Telegram Reddit打印 × 认识一下MT7688的PWM Widora默认提供了2路硬件PWM,与GPIO模拟成的PWM相比最大区别就是运行时不占用CPU,可输出高频率、高精度PWM。最多可提供4路(另外两路与UART2复用IO,启用的话需要修改DTS)。 参数 最高频率 调节精度 40MHz 1-bit 20MHz 2-bit 10MHz 3-bit 5MHz 4-bit 2.5MHz 5-bit 1.25MHz 6-bit 625Khz 7-bit 操作 用户空间操作方法如下: 1、进入/sys/class/pwm/pwmchip0/目录 # cd /sys/class/pwm/pwmchip0 2、导出pwm0和pwm1 # echo 0 > export # echo 1 > export 3、再看此目录,会发现pwm0和pwm1目录,拿操作pwm0为例 # cd pwm0 # ls duty_cycle enable period polarity uevent 4、duty_cycle是高电平时间,单位ns;period是PWM波形周期,单位ns。例如产生一个20K,50% 占空比波形,操作如下: # echo 1 > enable # echo 50000 > period # echo 25000 > duty_cycle 支持4路硬件PWM的dts更改方法 此修改是OpenWrt源码 进入/target/linux/ramips/dts/ 打开Widora.dts (根据你的平台选择Widora.dts还是Widora32m.dts) 在pinctrl段增加uart2方法 ,例如在36行开始增加如下: uart2 { ralink,group = “uart2”; ralink,function = “pwm”; }; 保存完重新编译即可