STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)

1.输入捕获简介:


a61f575450314d90b7244bb618386bbb.png


注:理解此图要对应通用/高级定时器图。


4个输入捕获是在通用定时器左下角部分内容,和4个输出比较共用CCR寄存器(可查看通用定时器图)。CH1~CH4的四个引脚也是共用的。因此,输入捕获,输出比较只能同时使用一个。


功能:输入引脚跳变瞬间,把CNT的值写入到CCR中,执行动作,控制后续电路。


输入捕获是接收输入信号,执行CNT所存CCR的行为(输出比较是根据CNT和CCR的大小关系执行输出操作)


电平持续时间可近似理解为占空比。脉冲间隔可近似理解为频率。


PWMI模式是PWM的输入模式,是专门测频率和占空比的。


PWMI模式和主从触发模式共同减少中断的使用,减轻软件的压力。


2.频率测量:


71993bf44e3447b88421108d9557b985.png


越往左,频率越高;越往右,频率越低。


最终高电平为3.3V,低电平为0V。


测周法:取标准频率fc,从一个上升沿开始到下一个上升沿结束,统计之间有多少个fc,则计一个数的时间为1/fc,计N个数时间(周期)为N/fc,取倒数为fc/N。


测频法适合测量高频(N大一些)信号,测周法适合测量低频信号。


测频法测量结果更新的慢一些,数值相对稳定。测周法更新的快,数据跳变得也快。


测频法类似于测平均值。


由于计次可能存在半个周期的情况(开始是高电平,结束却是低电平),也叫正负1误差。N越大,正负1误差影响越小。


中介频率的公式由来:测频法,测周法的N相等。


3.通用/高级定时器的输入捕获电路分析(重点):


fb85d518323942e1b7cbb7a54b75805c.png



最左边的CH1~CH4是四个引脚,参考定义表可知什么引脚复用在什么位置。


异或门部分:如果异或门走上面通道时,在CH1~CH3中,如果任意一个为高电平1,则输出为1;如果异或门走下面时,异或门不生效。


输入滤波器是对输入信号滤波,剔除不合要求的信号(如尖锐的,不是方波的)。边沿检测器,用于检测高电平和低电平。当有符合要求的波形时,触发后续电路执行动作。


图中的输入滤波和边沿检测器都有两个出口(用红线画出了)。达到CH1信号可控制IC1和IC2中一个或两个。目的:1.灵活切换后续捕获电路的输入。2.把一个引脚同时映射两个单元(CH1映射给IC1和IC2)


(如图中红线,我个人定义CH1的IC1为第一个通道,IC2为第二个通道)第一个通道,使用上升沿触发,用来捕获周期;第二个通道,使用下降沿触发,用来捕获占空比。即可同时测量频率和占空比。


预分配可选择对前面信号分频,分频后就触发捕获电路。每来一个信号,CNT的值就传递给CCR。


转运时,会发生捕获事件。(如设置上升沿捕获,每来一个上升沿,CNT就转运到CCR一次。且CNT的值就是两个上升沿之间的间隔,即周期T,倒数即为频率f。上升沿用于测量触发捕获,CNT用于计数计时。每来一个上升沿,取一下CNT的值,自动存在CCR里。CCR捕获的值就是计数值N。CNT的驱动时钟,就是fc。fc/N就是待测信号的频率。捕获后需要清零(用主从触发模式完成)。


4.主从触发模式:


5da474b7d9d4475db5dbed4823faa303.png


软件操作:对应三个函数,调用函数,给定参数。


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


从模式:接收其他外设或者自身外设的一些信号。用于控制自身定时器的运行,被别的信号控制。如若让TI1FP1信号自动触发CNT清零,则需要TI1FP1-->TRGI-->Reset


触发源模式:从模式的一部分。


(可参考手册STM3210FXXX 的14.4.2章节的MMS表)


5.输入捕获基本结构(重点):


47f9a0c093e245d4a2cf23fd2e6fcdd4.png


配置时基单元,启动定时器。CNT(测周法计时的)在预分配的时钟驱动下,不断自增。


GPIO输入方波信号,通过滤波器,边沿检测选择TI1FP1为上升沿触发,选择直连通道,分频器选择不分频。当产生上升沿,CNT的计数值转运到CCR1中,同时触发源选择TI1FP1为触发信号。从模式选择复位操作。 先转运CNT的值给CCR,再触发从模式给CNT清零.


CCR1=CNT操作是输入捕获执行,CNT是从模式执行,都是自动执行。


只选用一个通道,所以只能测量频率。


6.PWM基本结构:


749244f3a26844dab7867cc66ecff89b.png


观察左上图,CCR2=CNT时,CNT的值传给CCR2,CCR2是高电平的时间,此时CNT不清空。CCR1=CNT时,CNT的值传给CCR1,CCR1就是整个周期,CCR2/CCR1即为占空比。


eb49883d29f14baa99178362a29d58e5.png

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
存储 传感器 Linux
STM32微控制器为何不适合运行Linux系统的分析
总的来说,虽然技术上可能存在某些特殊情况下将Linux移植到高端STM32微控制器上的可能性,但从资源、性能、成本和应用场景等多个方面考虑,STM32微控制器不适合运行Linux系统。对于需要运行Linux的应用,更适合选择ARM Cortex-A系列处理器的开发平台。
281 0
|
7月前
|
消息中间件 物联网 Linux
STM32面试知识点总结分析
STM32面试知识点总结分析
186 0
|
7月前
|
存储 芯片 C++
STM32启动详细流程分析(一)
STM32启动详细流程分析(一)
310 0
|
7月前
|
芯片
嵌入式STM32中时钟系统详细分析
嵌入式STM32中时钟系统详细分析
179 0
嵌入式STM32中时钟系统详细分析
|
芯片 内存技术
STM32速成笔记(十三)—低功耗模式
本文介绍了三种STM32低功耗模式的进入和退出方法,针对待机唤醒给出了程序设计。
355 0
STM32速成笔记(十三)—低功耗模式
[STM32F10x] 利用定时器测量频率
[STM32F10x] 利用定时器测量频率
155 2
STM32F103C8 TIM输入捕获
STM32F103C8 TIM输入捕获
105 0
|
传感器 存储 芯片
STM32F407硬件I2C实现MPU6050通讯(CUBEIDE)
STM32F407硬件I2C实现MPU6050通讯(CUBEIDE)
339 0
|
存储 芯片 内存技术
STM32单片机串口一键下载电路与操作方法详解
STM32单片机串口一键下载电路与操作方法详解
768 0