对于stm32来说,输入捕捉模式有两种

  • 普通输入捕捉模式:经常用来测量脉冲宽度和频率,例如测量脉冲宽度,TIM5_CH1来捕获高电平脉宽,首先先设置输入捕获为上升沿触发,然后记录下发生上升沿时TIM5_CNT值。再然后,设置捕获信号为下降沿,在下降沿到来的时候,记录下此时的TIM5_CNT值。这样一来,两次TIM5_CNT值只差即为脉冲宽度。只设置上升沿触发则可以捕获信号周期。
  • PWM输入捕捉模式:pwm输入捕获模式是普通输入模式一种特殊应用,是将TIMx输入映射了两个ICx信号(输入捕获装置IC1和IC2),其中一个捕获上升沿,另一个捕获下降沿。这样可以在中断中去读上升沿和下降沿对应寄存器中的计数,从而得出周期和占空比。其中一个捕获通道计算两次都是上升沿的时间,即周期T;而另一个通道则计算一次下降沿和之前上升沿之差,这样得到高电平时长,从而可以求得周期T和占空比。

stm32输入捕获模式简介:http://www.cnblogs.com/wangh0802PositiveANDupward/archive/2013/01/03/2843058.html

stm32 pwm输入捕获模式简介:http://www.51hei.com/bbs/dpj-41774-1.html

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

PWM常用来做电机控制、LED背光亮度调节、开关电源等。

Linux pwm driver with  sysfs

TI linux pwm user guide: http://processors.wiki.ti.com/index.php/Linux_Core_PWM_User%27s_Guide#eHRPWM

Freescale: https://support.bluetechnix.at/wiki/Linux_Software_User_Manual_(i.MX6)#PWM

Gateworks: http://trac.gateworks.com/wiki/linux/pwm

对于TI的pwm来说

  • 首先配置内核支持pwm模块,其中eHRPWM:Enhanced High Resolution PWM, eCAP:Enhanced Capture.
  1. Procedure to build eHRPWM driver
  2. Device Drivers --->
  3. <*> Pulse Width Modulation(PWM) Support --->
  4. <*> eHRPWM PWM support
  5. Procedure to build eCAP driver
  6. Device Drivers --->
  7. <*> Pulse Width Modulation(PWM) Support --->
  8. <*> eCAP PWM support
  • 其次,申请channel
  1. Request the Device:
  2. target$ echo > /sys/class/pwm/pwmchip0/export
  3. free the device:
  4. target$ echo > /sys/class/pwm/pwmchip0/unexport
  • 使能/失能通道,注意:在使能前需要先设置下面参数,如周期和占空比
  1. Enable the PWM
  2. target$ echo > /sys/class/pwm/pwmchip0/pwm0/enable
  3. Disable the PWM
  4. target$ echo > /sys/class/pwm/pwmchip0/pwm0/enable
  • 设置周期/占空比/极性
  1. i.Setting the Period
  2. Following attributes set the period of the PWM waveform.
  3. period Attribute
  4. Enter the period in nano seconds value.
  5.  
  6. Example
  7. if the period is sec , enter
  8.  
  9. target$ echo > /sys /class/pwm/pwmchip0/pwm0/period
  10. ii.Setting the Duty
  11. Following attributes set the duty of the PWM waveform.
  12.  
  13. duty_cycle Attribute
  14. Enter the Duty cycle value in nanoseconds.
  15.  
  16. target$ echo val > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
  17. iii.Setting the Polarity
  18. Polarity Attribute.
  19. Setup Signal Polarity
  20.  
  21. Example
  22. To set the polarity to Active High, Enter
  23.  
  24. target$ echo > /sys /class/pwm/pwmchip0/pwm0/polarity

这样就完成了pwm的设置。

那sysfs和kernel中的驱动文件是怎么匹配起来的?

主要有3个文件:在drivers/pwm下得sysfs.c/core.c/pwm-imx.c

举个period的例子

-->static DEVICE_ATTR(period, 0644, pwm_period_show, pwm_period_store)   //sysfs.c

-->pwm_period_store(...)  //sysfs.c

  -->pwm_config(...)    //core.c

  -->pwm->chip->ops->config(...)  //core.c

    -->imx_pwm_config(...)    //pwm-imx.c

      -->imx_pwm_config_v1(imx1) or imx_pwm_config_v2(imx27在dts中Imx6使用)

这样就和驱动文件关联起来了。

[pwm]PWM的输入捕捉模式的更多相关文章

  1. STM32输入捕获模式设置并用DMA接收数据

    参考: STM32的PWM输入模式设置并用DMA接收数据 Input capture mode The input stage samples the corresponding TIx input ...

  2. (stm32f103学习总结)—输入捕获模式

    一.输入捕获介绍 在定时器中断实验章节中我们介绍了通用定时器具有多种功能,输入捕获就是其中一种.STM32F1 除了基本定时器 TIM6 和 TIM7,其他定时器都具有输入捕获功能.输入捕获可以对输入 ...

  3. occ添加新的捕捉模式

    Load (theSelection, theShape, theType, theDeflection, theDeviationAngle, isAutoTriangulation, thePri ...

  4. mysql \c 终止 mysql输入语句模式

    \c 遇到这种情况怎么退出mysql 输入语句模式? mysql> select -> 输入\c退出 mysql> select -> \c mysql> 另外一种情况 ...

  5. STM32(9)——通用定时器作为输入捕捉

    通用定时器作为输入捕获的使用.我们将用 TIM5 的通道 1 (PA0)来做输入捕获,捕获 PA0 上高电平的脉宽(用 WK_UP 按键输入高电平),通过串口打印高电平脉宽时间 输入捕获简介 输入捕获 ...

  6. 【翻译自mos文章】OGG的集成捕捉模式支持Oracle database标准版么?

    OGG的集成捕捉模式支持Oracle database标准版么? 来源于: Does OGG 11.2.1 Integrated Capture Work with Oracle Database S ...

  7. 说说M451例程之PWM的寄存器讲解

    M451提供了两路PWM发生器.每路PWM支持6通道PWM输出或输入捕捉.有一个12位的预分频器把时钟源分频后输入给16位的计数器,另外还有一个16位的比较器.PWM计数器支持向上,向下,上下计数方式 ...

  8. 说说M451例程之PWM

    /**************************************************************************//** * @file main.c * @ve ...

  9. ADC配置成定时器触发的启发

    百度文库:https://wenku.baidu.com/view/99d39413f78a6529647d5344.html STM32关于使用定时器触发ADC转换的解决办法和详细说明 本人在使用S ...

随机推荐

  1. Android -- 写xml到SD卡中

    信息类                                                                                          private ...

  2. Android -- 压缩与解压文件

    我在做一个项目中,工程文件中有一个功能需要很多图片,图片与app一起打包下来的话有30+M,那么我们就考虑另外下载压缩包,我们将图片取出,工程就只有4+M了,哈哈哈哈,呵呵,真恐怖.那么这样就涉及到另 ...

  3. 转换和删除重复命令tr

    前几篇文章介绍了几个用于处理字符的命令和工具,然而在处理大小写转换.删除重复字符等任务时,这些命令处理起来相对较为麻烦.这里将简单介绍Linux下自带的tr命令,相对于其他命令而言,其语法较为简单,比 ...

  4. QtGui.QPen

    The QtGui.QPen is an elementary graphics object. It is used to draw lines, curves and outlines of re ...

  5. SlidingMenu(一)

    我们一般称之为侧边栏,今天下倒腾了一下,留点笔记... 源码来自:https://github.com/jfeinstein10/SlidingMenu 来张图把: 代码API注释看看这个吧 http ...

  6. ubuntu16.4安装后做的事情

    1.安装搜狗拼音输入法 http://pinyin.sogou.com/linux/help.php 2.安装谷歌浏览器 http://jingyan.baidu.com/article/335530 ...

  7. 数据库如何创建视图create view

    数据库如何创建视图     创建视图的理想步骤: 一般来说,视图创建可以分为五步走: 第一步:先考虑select语句的编写.我们知道,视图其实就是一个select语句的集合,所以,我们建立视图的第一步 ...

  8. 数据库选型之MySQL(固态硬盘)

    刘勇    Email: lyssym@sina.com 本博客记录作者在工作与研究中所经历的点滴,一方面给自己的工作与生活留下印记,另一方面若是能对大家有所帮助,则幸甚至哉矣! 简介 鉴于高频中心库 ...

  9. Android成长之路-手势库的创建

      手势库的创建: 使用SDK自带的例子GestureBuilder建立手势库,这个文件夹存在于android\android-sdk-windows \samples\android-10\Gest ...

  10. Kernel ridge regression(KRR)

    作者:桂. 时间:2017-05-23  15:52:51 链接:http://www.cnblogs.com/xingshansi/p/6895710.html 一.理论描述 Kernel ridg ...