[pwm]PWM的输入捕捉模式
对于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.
- Procedure to build eHRPWM driver
- Device Drivers --->
- <*> Pulse Width Modulation(PWM) Support --->
- <*> eHRPWM PWM support
- Procedure to build eCAP driver
- Device Drivers --->
- <*> Pulse Width Modulation(PWM) Support --->
- <*> eCAP PWM support
- 其次,申请channel
- Request the Device:
- target$ echo > /sys/class/pwm/pwmchip0/export
- free the device:
- target$ echo > /sys/class/pwm/pwmchip0/unexport
- 使能/失能通道,注意:在使能前需要先设置下面参数,如周期和占空比
- Enable the PWM
- target$ echo > /sys/class/pwm/pwmchip0/pwm0/enable
- Disable the PWM
- target$ echo > /sys/class/pwm/pwmchip0/pwm0/enable
- 设置周期/占空比/极性
- i.Setting the Period
- Following attributes set the period of the PWM waveform.
- period Attribute
- Enter the period in nano seconds value.
- Example
- if the period is sec , enter
- target$ echo > /sys /class/pwm/pwmchip0/pwm0/period
- ii.Setting the Duty
- Following attributes set the duty of the PWM waveform.
- duty_cycle Attribute
- Enter the Duty cycle value in nanoseconds.
- target$ echo val > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
- iii.Setting the Polarity
- Polarity Attribute.
- Setup Signal Polarity
- Example
- To set the polarity to Active High, Enter
- 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的输入捕捉模式的更多相关文章
- STM32输入捕获模式设置并用DMA接收数据
参考: STM32的PWM输入模式设置并用DMA接收数据 Input capture mode The input stage samples the corresponding TIx input ...
- (stm32f103学习总结)—输入捕获模式
一.输入捕获介绍 在定时器中断实验章节中我们介绍了通用定时器具有多种功能,输入捕获就是其中一种.STM32F1 除了基本定时器 TIM6 和 TIM7,其他定时器都具有输入捕获功能.输入捕获可以对输入 ...
- occ添加新的捕捉模式
Load (theSelection, theShape, theType, theDeflection, theDeviationAngle, isAutoTriangulation, thePri ...
- mysql \c 终止 mysql输入语句模式
\c 遇到这种情况怎么退出mysql 输入语句模式? mysql> select -> 输入\c退出 mysql> select -> \c mysql> 另外一种情况 ...
- STM32(9)——通用定时器作为输入捕捉
通用定时器作为输入捕获的使用.我们将用 TIM5 的通道 1 (PA0)来做输入捕获,捕获 PA0 上高电平的脉宽(用 WK_UP 按键输入高电平),通过串口打印高电平脉宽时间 输入捕获简介 输入捕获 ...
- 【翻译自mos文章】OGG的集成捕捉模式支持Oracle database标准版么?
OGG的集成捕捉模式支持Oracle database标准版么? 来源于: Does OGG 11.2.1 Integrated Capture Work with Oracle Database S ...
- 说说M451例程之PWM的寄存器讲解
M451提供了两路PWM发生器.每路PWM支持6通道PWM输出或输入捕捉.有一个12位的预分频器把时钟源分频后输入给16位的计数器,另外还有一个16位的比较器.PWM计数器支持向上,向下,上下计数方式 ...
- 说说M451例程之PWM
/**************************************************************************//** * @file main.c * @ve ...
- ADC配置成定时器触发的启发
百度文库:https://wenku.baidu.com/view/99d39413f78a6529647d5344.html STM32关于使用定时器触发ADC转换的解决办法和详细说明 本人在使用S ...
随机推荐
- Android -- 写xml到SD卡中
信息类 private ...
- Android -- 压缩与解压文件
我在做一个项目中,工程文件中有一个功能需要很多图片,图片与app一起打包下来的话有30+M,那么我们就考虑另外下载压缩包,我们将图片取出,工程就只有4+M了,哈哈哈哈,呵呵,真恐怖.那么这样就涉及到另 ...
- 转换和删除重复命令tr
前几篇文章介绍了几个用于处理字符的命令和工具,然而在处理大小写转换.删除重复字符等任务时,这些命令处理起来相对较为麻烦.这里将简单介绍Linux下自带的tr命令,相对于其他命令而言,其语法较为简单,比 ...
- QtGui.QPen
The QtGui.QPen is an elementary graphics object. It is used to draw lines, curves and outlines of re ...
- SlidingMenu(一)
我们一般称之为侧边栏,今天下倒腾了一下,留点笔记... 源码来自:https://github.com/jfeinstein10/SlidingMenu 来张图把: 代码API注释看看这个吧 http ...
- ubuntu16.4安装后做的事情
1.安装搜狗拼音输入法 http://pinyin.sogou.com/linux/help.php 2.安装谷歌浏览器 http://jingyan.baidu.com/article/335530 ...
- 数据库如何创建视图create view
数据库如何创建视图 创建视图的理想步骤: 一般来说,视图创建可以分为五步走: 第一步:先考虑select语句的编写.我们知道,视图其实就是一个select语句的集合,所以,我们建立视图的第一步 ...
- 数据库选型之MySQL(固态硬盘)
刘勇 Email: lyssym@sina.com 本博客记录作者在工作与研究中所经历的点滴,一方面给自己的工作与生活留下印记,另一方面若是能对大家有所帮助,则幸甚至哉矣! 简介 鉴于高频中心库 ...
- Android成长之路-手势库的创建
手势库的创建: 使用SDK自带的例子GestureBuilder建立手势库,这个文件夹存在于android\android-sdk-windows \samples\android-10\Gest ...
- Kernel ridge regression(KRR)
作者:桂. 时间:2017-05-23 15:52:51 链接:http://www.cnblogs.com/xingshansi/p/6895710.html 一.理论描述 Kernel ridg ...