本文演示PWM输入信号采集,基于触觉智能RK3506开发板,搭载3核Cortex-A7+Cortex-M0多核异构处理器,支持2路CAN FD,5路串口,RGB、MIPI、音频、USB2.0 OTG等各类接口;板载双百兆网口+4G+星闪SLE+WiFi6+BLE5.2。
PWM信号简介
PWM全称为脉宽调制Pulse Width Modulation,是利用微处理器的数字输出,来对模拟电路进行控制的一种非常有效的技术,通过对一系列脉冲的宽度进行调制,来等效的获得所需要的波形(含形状和幅值),即通过改变导通时间占总时间的比例,也就是占空比,达到调整电压和频率的目的。
广泛应用在从测量、通信到功率控制与变换的许多领域中,用于调压调频,最突出的是针对各种类型的电机应用。
PWM输入信号采集说明
瑞芯微默认实现了状态获取和申请两个函数,并没有实现输入捕获相关的函数,要想在RK3506上实现PWM的输入捕获,则需通过DTS和内核进行相应配置:
- 准备工作
根据引脚说明,这里我们选择配置PWM1,避免与屏幕背光控制(PWM0)冲突:


- DTS配置
修改一下代码:
&pwm1_8ch_0 { pinctrl-names = "active"; pinctrl-0 = <&rm_io24_pwm1_ch0>; status = "okay"; };
- Kernel配置
CONFIG_PWM_ROCKCHIP=y
完成配置后对源码进行编译,并烧录至开发板。
配置测试环境
使用2块触觉智能RK3506开发板搭建环境,以下简称A和B开发板(2个板准备工作一致),A开发板进行PWM信号捕获,B开发板发出PWM信号。
以正常输入模式输出,将波形发生接到的PWM1引脚进行测试:
- A开发板配置Capture模式
代码如下:
cd /sys/class/pwm/pwmchip0/ echo 0 > export cd pwm0
- B开发板配置Continous模式
周期为20us,占空比10us,代码如下:
cd /sys/class/pwm/pwmchip0/ echo 0 > export cd pwm0 echo 20000 > period echo 10000 > duty_cycle echo normal > polarity echo 1 > enable
进行测试
- A开发板测试代码&结果
root@rk3506-buildroot:/sys/class/pwm/pwmchip0/pwm0# cat capture 20000 10000
获取到的值分别是PWM周期 和占空比 (period,duty_cycle) 单位是ns。可以看到结果为20000ns和10000ns,正好对应配置的20us和10us数据,表示测试成功。
/** * struct pwm_capture - PWM capture data * @period: period of the PWM signal (in nanoseconds) * @duty_cycle: duty cycle of the PWM signal (in nanoseconds) */ struct pwm_capture { unsigned int period; unsigned int duty_cycle; };
- FAQ
若配置Capture模式,没有采集到pwm波形,会提示采集超时
root@rk3506-buildroot:/# cd /sys/class/pwm/pwmchip0/ root@rk3506-buildroot:/sys/class/pwm/pwmchip0# echo 0 > export root@rk3506-buildroot:/sys/class/pwm/pwmchip0# cd pwm0/ root@rk3506-buildroot:/sys/class/pwm/pwmchip0/pwm0# root@rk3506-buildroot:/sys/class/pwm/pwmchip0/pwm0# root@rk3506-buildroot:/sys/class/pwm/pwmchip0/pwm0# cat capture [ 961.782711] rockchip-pwm ff170000.pwm: Failed to wait for LPR/HPR interrupt [ 962.783876] rockchip-pwm ff170000.pwm: Failed to wait for LPR/HPR interrupt cat: read error: Connection timed out root@rk3506-buildroot:/sys/class/pwm/pwmchip0/pwm0#
触觉智能RK3506开发板简介
创新支持华为星闪无线通信技术(星闪SLE+WiFi+BLE三模),板载双百兆网口、2路CAN FD、5路串口等丰富接口,不仅作为RK3506的开发评估板,还可直接用于工业控制、网关、智能家电、物联显控等领域。如需选购,淘宝搜索 触觉智能官方企业店。
-
PWM
+关注
关注
116文章
5894浏览量
226601 -
开发板
+关注
关注
26文章
6420浏览量
120907 -
触觉智能
+关注
关注
1文章
66浏览量
902 -
RK3506
+关注
关注
0文章
102浏览量
1007
发布评论请先 登录
米尔基于RK3562与RK3506开发板有什么区别?
资源受限下HMI2秒启动系统,米尔RK3506开发板×LVGL Demo演示
【技术简析】触觉智能RK3506 Linux星闪网关开发板有什么奥妙?
瑞芯微RK3506开发板必备之LVGL应用开发手册,深圳触觉智能出品
米尔基于瑞芯微RK3506核心板开发板
瑞芯微RK3506 Flexbus技术开发指南,从原理、内核配置到测试的完整攻略
瑞芯微RK3506开发板PWM输入捕获驱动调试记录
评论