当前位置: 首页 > news >正文

STM32(七):定时器——输入捕获

IC(Input Capture)输入捕获

        输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。

        每个高级定时器和通用定时器都拥有4个输入捕获通道。

        可配置为PWMI模式,同时测量频率和占空比。

        可配合主从触发模式,实现硬件全自动测量。

输入捕获和输出比较的区别:

        输出比较引脚数输出端口,输入捕获引脚数输入端口。输出比较是根据CCR和CNT的大小关系来执行输出动作。输入捕获是接受到输入信号,执行CNT锁存到CCR的动作。

        左下角异或门,是为了三相电机准备的;右边其实有两套滤波和边沿检测电路,第一套电路TI1信号经过滤波和极性选择得到TI1FP1(TI1 Filter Polarity 1),输入给通道1 的后续电路。第二套电路经过另一个滤波和极性选择TI1FP2(TI1 Filter Polarity 2)输入给通道2 的后续电路. 同理TI2信号也经过两套滤波和边沿检测电路的到TI2FP1和TI2FP2信号,其中TI2FP1给上面,TI2FP2输入给本级,也就是TI1和TI2可以选择各走各的,也可以选择交叉。

        该设计的原因:1. 可以灵活的切换后续捕获电路的输入。2. 可以把一个引脚的输入,同时映射到两个捕获单元,PWMI模式会用到。第一个捕获通道(FP1),使用上升沿触发,用来捕获周期;第二个通道(FP2)使用下降沿触发,用来捕获占空比,两个通道同时对要给引脚进行捕获,同时测量频率和占空比。

        在捕获上升沿之后,需要对CNT进行清零操作,清零之后,下次上升沿再捕获时候,取出的CNT才是两个上升沿的时间间隔。在一次捕获后自动将CNT清零的步骤,可以用主从触发模式,自动来完成。

输入捕获通道1详解:

         TI1:CH1的引脚;   TI1F:滤波后的信号; fDTS:滤波器的采用时钟来源;

        CCMR1:CCMR1寄存器里的ICF位可以控制滤波器的参数,这几位定义了TI1数入的采样频率以及数字滤波器长度。数字滤波器有一个事件计数器组成,它记录到N个事件后会产生一个输出的跳变。

        CCER寄存器里的CC1P位可以选择极性,最终的得到TI1FP1触发信号,通过数据选择器,进入通道1后续的捕获电路。

        CC1S位可以对数据选择器进行选择,ICPS位可以配置分频器,最后CC1E位控制输出使能或失能。

如何自动清零CNT?

上图中TI1FP1信号和TI1F的边沿信号TI1F_ED通向从模式控制器 

主从触发模式

        主从触发模式就是主模式,从模式,触发源选择的简称。 

        主模式:可以将定时器内部的信号,映射到TRGO引脚,用于触发别的外设。

        从模式:接收其他外设或者自身外设的一些信号,用于控制自身定时器的运行,也就是被别的信号控制。

        触发源选择就是选择从模式的信号源的,可以当作从模式的一部分。

 

        如果想自动清零,那么就TI1FP1从模式执行Reset。

 


http://www.mrgr.cn/news/9429.html

相关文章:

  • 异常处理 || 抛出 || 捕获 || noexcept || 异常类
  • C语言第17篇
  • Android中实现WebView的秒开场景及方案
  • OSPF与BGP防环机制总结
  • flutter开发小技巧
  • ffplay源码分析(二)结构体VideoState
  • 电脑U口管理软件分享|U口管理软件哪个好?
  • 交叉编译Qt5.12.8附带编译opengl
  • 编程思想:编程范式:面向对象
  • 递归搜索与回溯专题篇一
  • 目标检测多模态大模型实践:貌似是全网唯一Shikra的部署和测试教程,内含各种踩坑以及demo代码
  • 幂等方案分析
  • chrome扩展程序本地打包
  • 流体中的流线【StreamLines】的实现
  • mysql数据库----简单认识库的操作
  • 绝了!在vscode中体验《黑神话:悟空》的视觉冲击
  • 【Tools】 Git 的基本概念和使用方式
  • 下载了pytorch 为什么导包是 torch
  • Transformer模型:Position Embedding实现
  • 如何在 macOS 上升级 Ruby 版本