嵌入式Linux下PWM功能调试

供稿:韬睿(上海)计算机科技有限公司

  • 关键词:ARM,Linux,PWM
  • 摘要:PWM(Pulse-width modulation)接口是嵌入式设备最为常用的接口之一,常用于电机驱动,蜂鸣器,脉冲计数等嵌入式领域,因此本文就基于嵌入式Linux演示使用PWM接口。

1). 简介


a). Colibri iMX6DL ARM核心版配合Colibri Eva Board V3.2B载板,连接调试串口到开发主机,同时配置好Ubuntu开发主机开发环境,具体操作方法可以参考这里。

c). Colibri iMX6DL 提供了4路PWM接口支持,其中三路为标准的PWM输出接口,另外一路特定为Backlight背光驱动控制功能,Toradex Linux发布V2.7以上版本具体的定义请见如下,其他更低的LInux版本以及其他系列产品的定义情况请见这里。另外,如果需要将PWM_A作为常规PWM使用,需要修改Device Tree文件并重新编译,这里就不详细介绍了。

d). 这里为了简化测试,采用PWM输出驱动Colibri Eva Board上面提供的LED灯,连接方式如下,分别测试PWM_B,PWM_C,PWM_D连接到LED的驱动情况,PWM_A是backlight背光驱动功能这里就不直接测试了。

./ PWM_C (X12 PWM_B 管脚) –> X21 LED1


3). user space下对PWM接口进行测试


--------------------------------

root@colibri-imx6:~# echo 0 > export


--------------------------------

root@colibri-imx6:~# echo 1000000000 > pwm0/period

--------------------------------

--------------------------------

--------------------------------


a). 程序和上述user space实现的原理一致,只是使用linux 文件管理相关函数进行操作,具体代码请见如下:

https://github.com/simonqin09/PWMtest/blob/master/pwmconfig.h

https://github.com/simonqin09/PWMtest/blob/master/pwmconfig.c

https://github.com/simonqin09/PWMtest/blob/master/pwmtest.c

b). 测试上述c程序代码运行请见如下:

root@colibri-imx6:~# ./pwmtest B

root@colibri-imx6:~# ./pwmtest C

root@colibri-imx6:~# ./pwmtest D

root@colibri-imx6:~# ./pwmtest

root@colibri-imx6:~# ./pwmtest S

--------------------------------

<p style="font-family:" font-size:14px;"="">

发布时间:2017年5月27日 17:20  人气:   审核编辑(王静 )
相关链接

我有需求