分享PWM输入模式捕捉4路PWM波形的周期和占空比

发布者:superstar10最新更新时间:2018-06-28 来源: eefocus关键字:输入模式  PWM波形  周期  占空比 手机看文章 扫描二维码
随时随地手机看文章

前几天分享过一个帖子,因为网速原因没有上传源码,看到有人回复我说实验不成功,那么好吧!这是我的错误,这次就将源码和我的心得体会分享出来,供大家下载测试和成长。我其实也是菜鸟一个,如果讲解的地方有啥不对,或是程序设计的不好,欢迎大家提出意见,让我们一起来学习进步。fficeffice" />

PWM输入是输入捕获的一个特殊应用,输入捕获就是当连接到定时器的引脚上产生电平变化时对应的捕获装置会立即将当前计数值复制到另一个寄存器中。你可以开启捕获中断然后在中断处理函数中读出保存的计数值。

与输入捕获不同的是PWM输入模式会将同一个输入信号(TI1或TI2)连接到两个捕获装置(IC1和IC2)。这两个捕获装置一个捕获上升沿一个捕获下降沿。TI1FP1、TI2FP2它们中的一个被选择为触发输入且从模式控制器被配置为复位模式。

ffice:word" />PWM输入捕获原理和时序图:



 

    1)   当第一次上升沿到达时IC1捕获TIMx_CCR1的值为当前计数值4,IC2不会捕获TIMx_CCR2保持不变,计数器复位从0开始计数。
2) 第一个下降沿到达时IC2捕获TIMx_CCR2的值为2表示脉冲宽度。当上升再次到达时TIMx_CCR1的值就表示脉冲周期了(注意:第一次上升沿捕获的是个随机值)。

2)    原理也讲过了,那么下面就是实战了
一、操作步骤:

①将我的源码从论坛里面下载下来

②用杜邦线将PB7和PC6连接起来

③将编译完成的hex文件下载到开发板

④打开串口调试助手波特率选9600

⑤按下开发板的复位键,OK那么你就能看到串口的打印信息。

⑥用杜邦线依次将PB7和PC7、PB7和PC8、PB7和PC9连接起来,看串口打印不同占空比和相同周期的信息。

二、主程序讲解:

①TIM3_PWM_Init(1000-1,72-1);   //1KHz的周期

这个计算相信大部分人应该没有问题原子哥也做过详细的讲解那么我在重复一遍

CPU主频是72MHZ 这里将72MHZ主频72分频,那么就为1MHZ,所以计数器每加1那么就是代表增加1US,我这里设置的是999,因为0-999正好是1000us,所以我设置的周期是1000us 也就是1KHZ

②TIM_SetCompare1(TIM3,200);

这个函数式设置PWM通道的占空比,因为周期是1000us所以我这里设置的是20%的占空比,这个计算我就算教小白吧  占空比 = 200/1000 我这里设置的是通道1也就是PC6的占空比。下面三个我就不讲了。

③TIM4_PWMINPUT_INIT(0xffff,72-1);

这个函数是PWM输入模式初始化,这个我设置的最大计数是0xffff,因为是16位的计数器当然最大也只能这么大了,后面的参数是设置捕捉频率的,我这里还设置为1MHz,这样为了好看实验现象。

④While(1){}

主程序那三个打印语句我就不讲了,这个都不会,那么你就该补补了。

三、四路PWM程序讲解:

①void TIM3_PWM_Init(u16 arr,u16 psc)

这个函数我不讲很多因为原子哥已经将的很清楚了,我就将几个注意的地方和大家说一下,

GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); 这个函数式定时器的全映射,将

TIM3定时器的引脚映射到了PC6 C7 C8 C9上了。

四、PWM输入捕捉程序讲解:

①void TIM4_PWMINPUT_INIT(u16 arr,u16 psc)

这个函数我在源码里面已经注释的很清楚了,有几个点需要大家注意

②TIM_SelectInputTrigger(TIM4, TIM_TS_TI2FP2);    

这个是选择有效的输入端 ,我这里TIM_TS_TI2FP2选择的PB7,注意:只有TI1FP1和TI2FP2连到了从模式控制器,所以PWM输入模式只能使用TIMx_CH1 /TIMx_CH2信号。 

③TIM_SelectSlaveMode(TIM4, TIM_SlaveMode_Reset);  

这个是配置为PWM输入主从复位模式,就是每次输入端有效电平变化的时候定时器计数器就会硬件上置0

中断函数讲解

至于TIM4的中断函数很简单我就不多讲什么了,主要就是将捕捉到的周期和占空比记录下来。

 

注意:我提醒大家一下,我现在这个捕捉的周期的范围是1-65535us,如果你要捕捉的周期超出这个怎么办,我给大家一点建议①将捕获精度降低,也就是讲捕获频率降下来②这个就是用原子哥那种溢出计数的方法,但是这个有意思的是主从复位模式,每次复位也会产生更新中断,那么如果不加设置的话,可能这种方法是行不通的。但是我已经解决了,看手册介绍,解决的。哈哈,大家有兴趣的话,可以去试着解决,自己做的饭才是最香的。实在是想用第二种方法,但是又解决不了的,就可以回复,但是我想着还是自己解决的好。

说了这么多,有的人可能会提出疑问?那你给我们讲这些理论,你自己到底实现了没有?俗话说的好,有图有真相,没图说啥?那么好的上真相,不过是有误差的,但是我认为这个误差在接受范围内。



PB7和PC6连接的串口输出情况:实际周期1KHz占空比20% 

PB7和PC7连接的串口输出情况:实际周期1KHz占空比40% 
PB7和PC8连接的串口输出情况:实际周期1KHz占空比60% 


关键字:输入模式  PWM波形  周期  占空比 引用地址:分享PWM输入模式捕捉4路PWM波形的周期和占空比

上一篇:stm32如何实现PWM输出及周期内ADC采样
下一篇:STM32F407输出多路PWM波

推荐阅读最新更新时间:2024-03-16 16:07

8051、ARM和DSP指令周期的测试与分析
摘要 在实时嵌入式控制系统中,指令周期对系统的性能有至关重要的影响。介绍几种最常用的微控制器的工作机制,采用一段循环语句对这几种微控制器的指令周期进行测试,并进行分析比较。分析结论对系统控制器的选择有一定的指导作用。 关键词 指令周期测试 AT89S51 LPC2114 TMS320F2812   在实时控制系统中,选择微控制器的指标时最重要的是计算速度的问题。指令周期是反映计算速度的一个重要指标,为此本文对三种最具代表性的微控制器(AT89S51单片机、ARM7TDMI核的LPC2114型单片机和TMS320F2812)的指令周期进行了分析和测试。为了能观察到指令周期,将三种控制器的GPIO口设置为数字输出口,并采用循环不断地置
[单片机]
高频开关电源的单周期控制的DC/DC Buck转换器
  为了说明单周期控制的原理,用图1所示的Buck转换器为例进行介绍。主开关管V的输入端电压为直流电压Ui,V的输出电压为二极管D上的电压uD,并以uD为被检测量。设转换器工作在CCM模式。在反馈控制电路中有积分放大器,用以对检测值uD进行实时积分。积分电容C1并联了一个小开关管V1,V1的导通和关断与主开关管V互补。t∈[0,Du,Ts],V导通,V1关断;这时输人电压ui加在二极管D上,使D上的电压uD=ui,积分器对该电压进行积分;当积分值达到给定值ur时,主开关管V关断(此时t=DuTs)同时,控制器发出脉冲,使V1闭合,积分器复位。在主开关管V关断期间,二极管D导通,uD=0,这段时间为t∈[DuTs,Ts]。
[电源管理]
高频开关电源的单<font color='red'>周期</font>控制的DC/DC Buck转换器
STM32的指令周期
在keil中编程时,写了一行代码,然后就想知道,执行这句C代码需要多长时间。 时钟周期在这就不解释了,频率的倒数。 指令周期,个人理解就是cpu执行一条汇编指令所需要的时间。 我们知道cm3使用的三级流水线,那么到底一条指令的执行需要多少个时钟周期。下面通过keil软件仿真,来计算一个指令所需的时钟周期。 使用STM32F103RC,。配置其主时钟HCLK为72mhz测试代码如下: 然后开始仿真 编译通过后,点击dbg按钮,调出如下窗口: 并且设置以上的断点,开始单步调试。并记录时间, 单步调试 这样便可以计算出执行 MVOS r1,#0x04 所用的时间视为29.20833-29.19
[单片机]
STM32的指令<font color='red'>周期</font>
模拟IC:500亿美金市场,超长生命周期
  半导体行业市场规模不断增长,并成为全球经济的重要支柱。2017年全球半导体产业整体销售额达到4086亿美元。根据功能的不同,集成电路可以分为 模拟IC 和 数字IC 。下面就随模拟电子小编一起来了解一下相关内容吧。    模拟IC :处理连续性的光、声音、速度、温度等自然模拟信号的IC被称为 模拟IC ,这些连续性的信号可以转换为正弦波研究。模拟IC包括放大器、数据转换、比较器、电源管理芯片等产品,产品生命周期可长达10年,主要应用在通信、汽车、电脑周边和消费电子。根据WSTS统计,2017年全球模拟IC销售额为527亿美金。    数字IC :处理的是非连续性信号,都是脉冲方波。 数字IC 强调的是运算速度与成本比,生命周
[模拟电子]
1万美元即可获V1 ColdFire许可
  飞思卡尔通过IPextreme向嵌入式市场提供32位V1 ColdFire内核,进一步扩展了其ColdFire许可计划。IPextreme新近推出的Core Store使客户能够以只有传统许可成本几分之一的成本,在线获得ColdFire内核的许可权。现在,客户只需1万美元就可以获得V1 ColdFire内核的使用许可,享用30多年来从未停止前进脚步并经过验证的微控制器(MCU)技术。   “让开发人员花1万美元就可以获得V1 ColdFire内核,飞思卡尔和IPextreme提供了一个特别经济实惠的ColdFire架构入门价格。”飞思卡尔微控制器解决方案集团消费和工业MCU产品事业部经理Aiden Mitchell表示,“I
[新品]
使用说明:高频开关电源周期换向开关
     安装   将电镀整流器在生产现场安置到位后,连接整流器和换向开关的铜排,换向开关需要用地脚螺丝固定,连接换向开关和镀槽电极的铜排,将控制盒安置在观察操作方便的位置。连接整流器电源(380V三相三线),连接换向开关电源(380V三相四线)。并接好水管。   换向开关在第一次使用前和每次重新连接换向开关的电源线后,必须先检查确认电机转向。   将控制盒上的“手动/自动”开关打到“手动”,合上给换向开关供电的开关,按动控制盒上的正向按钮或反向按钮,看换向开关的马达的转动方向与标示的方向是否一致,(如不一致,要立即停止。否则会对机件造成严重损坏。)如果不一致,应调换换向开关输入电源线的任意两条相线,再按上面的方法进行
[电源管理]
使用说明:高频开关电源<font color='red'>周期</font>换向开关
定时器输出的PWM频率范围及占空比精度
我想要TIM定时器输出的PWM波形:0.1%精度占空比, 频率范围:200Hz - 10KHz。请问能实现吗? Ⅰ 写在前面 如果有朋友下载了上一篇文章我提供的例程,在“bsp_timer.h”文件下,你就会发现有如下一段被我注释了的【说明性文字】。 这个工程是我从之前项目中提取出来(复制部分代码),从新整理的一个的工程。里面的这个被注释了的描述文字是之前整理的,今天重新对其说明一下。 这里句题外话: 我一般都是注重让大家明白其原理,提供的工程代码以简单为原则。比如:没有添加系统,没有添加参数越界检查等额外的代码。不是让你直接拷贝过去就用,一般需要结合你实际工程,对其修改。 Ⅱ 解读那段文字
[单片机]
定时器输出的<font color='red'>PWM</font>频率范围及<font color='red'>占空比</font>精度
袁智民:古瑞瓦特以过硬实力,穿越行业周期
11月8日,“2023第二届中国储能产业论坛暨2023储能榜单发布盛典”在山东临沂举办。作为“2023中国(临沂)新能源高质量发展大会”的重要组成部分,论坛由中共临沂市委、临沂市人民政府、国能能源研究院主办,临沂市新能源高质量发展工作专班、市委组织部、市发改委、市科技局、市工信局、兰山区委、兰山区人民政府、国际能源网承办。 万亿储能赛道中,工商业储能被万众瞩目。在论坛先见演讲环节中,深圳古瑞瓦特新能源有限公司产品总监袁智民介绍了古瑞瓦特工商业储能全场景解决方案。 深圳古瑞瓦特新能源有限公司产品总监 袁智民 工商业储能已经进入发展佳期 袁智民首先提出,储能已经成为大势所趋,因为储能不仅是加速实现双碳目标的必然选择,也是构建新型
[新能源]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved