当前位置: 首页 > news >正文

pwm控制

pwm控制

5.1. pwm引脚

LubanCat板卡上集成了四个具有pwm功能的GPIO,其他有些io也能复用为pwm。

未找到图片

由于LubanCat-RK系列的板子的PWM控制器会不一样,请对照下表使用

LubanCat-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

  1. 使用方向键移动光标到 PWM10

  2. 按 “空格键” 选中PWM10(出现 “*” ),如下图

  3. 使用方向键移动光标到 PWM11

  4. 按 “空格键” 选中PWM11(出现 “*” ),如下图

  5. 按 “确认键” 进行设置

  6. 按 “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的值。

未找到图片

http://www.xdnf.cn/news/389359.html

相关文章:

  • istio in action之服务网格和istio组件
  • LLM框架
  • Ubuntu 24服务器部署abp vnext应用程序的完整教程
  • 模块自动导入的小工具
  • 使用go开发安卓程序
  • 【漫话机器学习系列】252.零损失(0-1 Loss)
  • 豆包:国内 web 辅助开发的领头羊
  • 79.评论日记
  • Linux防火墙
  • Python模块与包以及工程文件管理
  • 【Python训练营打卡】day22 @浙大疏锦行
  • Linux-Ext系列文件系统
  • AI Agent(10):个人助手应用
  • Transformer Decoder-Only 参数量计算
  • 【计算机视觉】OpenCV实战项目 :Image_Cartooning_Web_App:基于深度学习的图像卡通化
  • 代理售票系统|基于Java+vue的代理售票系统(源码+数据库+文档)
  • CVPR2023 | StyLess: 提升对抗样本的可迁移性
  • MATLAB 矩阵与数组操作基础教程
  • 量化交易系统开发经验分享--回测框架调研
  • 股票回购、股票减持和股票解禁对股票价格影响的综合分析
  • Synchronized与锁升级
  • 经典工具箱、常见工具、软件合集【免费无广告】
  • 【C/C++】跟我一起学_C++同步机制效率对比与优化策略
  • 云计算中的虚拟化:成本节省、可扩展性与灾难恢复的完美结合
  • mybatis执行sql过程
  • 设计模式简述(十九)桥梁模式
  • 红黑树(C++)
  • 大模型对时尚穿搭体验的革新与重塑
  • 强化学习入门:马尔科夫过程
  • Linux系统中的Web服务器部署及优化