瑞芯微RK3506开发板PWM输入捕获驱动调试记录

描述

本文演示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的开发评估板,还可直接用于工业控制、网关、智能家电、物联显控等领域。如需选购,淘宝搜索 触觉智能官方企业店。

触觉智能
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分