pwm控制
pwm控制
5.1. pwm引脚
LubanCat板卡上集成了四个具有pwm功能的GPIO,其他有些io也能复用为pwm。
由于LubanCat-RK系列的板子的PWM控制器会不一样,请对照下表使用
板卡 | Pin12 | Pin32 | Pin33 | Pin35 |
---|---|---|---|---|
LubanCat-4系列 | pwm14 | pwm15 | pwm10 | pwm11 |
LubanCat-4-V1系列 | pwm14 | pwm15 | pwm10 | pwm11 |
LubanCat-5系列 | pwm13 | pwm13 | pwm14 | pwm15 |
具体引脚可以查看 — LubanCat-RK系列-40pin引脚对照图
5.1.1. 使能PWM接口功能
PWM接口在默认情况是关闭状态的,需要使能才能使用, 每个板卡都具有四个硬件PWM,下面的使能操作以 PWM10 和 PWM11 为例
5.1.1.1. 方法一
1 2 3 4 5 | #进入工具配置 sudo fire-config#移动光标到下图的位置 #按确认键进入配置 |
打开PWM10和PWM11
-
使用方向键移动光标到
PWM10
-
按 “空格键” 选中PWM10(出现 “*” ),如下图
-
使用方向键移动光标到
PWM11
-
按 “空格键” 选中PWM11(出现 “*” ),如下图
-
按 “确认键” 进行设置
-
按 “Esc键” 退出到终端,运行 sudo reboot 进行重启应用
5.1.1.2. 方法二
板卡 | 设备树插件配置文件 | 说明 |
---|---|---|
当前你所使用的板子 | uEnv.txt | 该配置软链接到你所使用的设备,修改该配置相当于修改板子实际的配置 |
LubanCat-4 | uEnvLubanCat4.txt | 适用于LubanCat-4 |
LubanCat-4-V1 | uEnvLubanCat4-V1.txt | 适用于LubanCat-4-V1 |
LubanCat-5 | uEnvLubanCat5.txt | 适用于LubanCat-5 |
LubanCat-5IO | uEnvLubanCat5IO.txt | 适用于LubanCat-5IO |
可以通过打开 /boot/uEnv/board.txt (board是你所用的板子的名称,参照上面的表格) 查看是否启用了pwm相关设备设备树插件。
编辑文件,将带有 pwm10 和 pwm11 的两行的注释符号去掉 如下图:
然后重启激活设备
注解
如果是直接拔电源的方式重启,会有可能出现文件没能做出修改 (原因:文件未能及时从内存同步到存储设备中,解决方法,在终端上输入 “sync” 再拔电关机)
5.2. 检查PWM设备
使能pwm通信接口后,可以用以下命令查看pwm是否开启
1 2 3 | ls /sys/class/pwm/cat /sys/kernel/debug/pwm |
系统默认开启风扇pwm以及mipi屏幕背光pwm,当开启多个pwm设备树插件时,pwm控制器值越小,系统分配的pwmchip越小
1 2 3 4 5 6 7 | 比如我同时开启了pwm0,pwm2,pwm10,pwm11,那么会出现以下对应关系pwm0(fan)->pwmchip0 pwm2(backlight0)->pwmchip1 pwm6(backlight1)->pwmchip2 pwm10->pwmchip3 pwm11->pwmchip4 |
5.3. pwm控制方式(shell)
下面操作以pwm10为例,对应pwmchip3
注意
在操作前必须先打开设备树插件,重启使能pwm10引脚
123456789 10 11 12 13 14 15 16 17 | #将pwm10导出到用户空间 echo 0 > /sys/class/pwm/pwmchip3/export#设置pwm周期 单位为ns echo 1000000 > /sys/class/pwm/pwmchip3/pwm0/period#设置占空比 echo 500000 > /sys/class/pwm/pwmchip3/pwm0/duty_cycle#设置pwm极性 echo "normal" > /sys/class/pwm/pwmchip3/pwm0/polarity#使能pwm echo 1 > /sys/class/pwm/pwmchip3/pwm0/enable#取消将pwm3导出到用户空间 echo 0 > /sys/class/pwm/pwmchip3/unexport |
提示
当设置period与duty_cycle值的时候需要注意在任何的情况下都得保证period的值大于等于duty_cycle的值。