PWM引脚

LubanCat板卡上集成了四个具有pwm功能的GPIO
RK系列40Pin2.png
由于LubanCat-RK系列的板子的PWM控制器会不一样,请对照下表使用

板卡 Pin12 Pin32 Pin33 Pin35
LubanCat-Zero系列 pwm3 pwm11 pwm8 pwm9
LubanCat-1系列 pwm8 pwm9 pwm10 pwm14
LubanCat-2系列 pwm8 pwm9 pwm10 pwm14

使能PWM接口功能

PWM接口在默认情况是关闭状态的,需要使能才能使用, 每个板卡都具有四个硬件PWM,下面的使能操作以 PWM8PWM9 为例
方法一:

  1. #进入工具配置
  2. sudo fire-config
  1. 使用方向键移动光标到 PWM8
  2. “空格键” 选中PWM8(出现 “*” ),如下图
  3. 使用方向键移动光标到 PWM9
  4. “空格键” 选中PWM9(出现 “*” ),如下图
  5. “确认键” 进行设置
  6. “Esc键” 退出到终端,运行 sudo reboot 进行重启应用

image.png
然后重启激活设备
方法二:
可以通过打开 /boot/uEnv/board.txt (board是你所用的板子的名称,参照上面的表格) 查看是否启用了pwm相关设备设备树插件。
编辑文件,将带有 pwm8pwm9 的两行的注释符号去掉 如下图:
pwm-dtoverlay.png
然后重启激活设备

检查PWM设备

  1. ls /sys/class/pwm/

pwm-ls.png
pwmchip0为屏幕的背光,系统默认开启,当开启多个pwm设备树插件时,pwm控制器值越小,系统分配的pwmchip越小

  1. 比如我同时开启了pwm8,pwm9,pwm14,那么会出现以下对应关系
  2. pwm8->pwmchip1
  3. pwm9->pwmchip2
  4. pwm14->pwmchip3

pwm控制

  1. #将pwm3导出到用户空间
  2. echo 0 > /sys/class/pwm/pwmchip1/export
  3. #设置pwm周期 单位为ns
  4. echo 1000000 > /sys/class/pwm/pwmchip1/pwm0/period
  5. #设置占空比
  6. echo 500000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle
  7. #设置pwm极性
  8. echo "normal" > /sys/class/pwm/pwmchip1/pwm0/polarity
  9. #使能pwm
  10. echo 1 > /sys/class/pwm/pwmchip1/pwm0/enable
  11. #取消将pwm3导出到用户空间
  12. echo 0 > /sys/class/pwm/pwmchip1/unexport