STM32
登录
直播中
刘桂英
7年用户
1179经验值
私信
关注
[问答]
F429的捕获功能实现原理是什么?
开启该帖子的消息推送
F429的捕获功能实现原理是什么?
回帖
(1)
王伟鹏
2021-11-24 10:50:46
前言
捕获功能是高级定时器的重要功能之一。捕获功能就是检测ARM管脚是否出现对应的跳动边沿,若出现,则将计数值的值锁存起来。即用于测量指定跳变边沿出现的时间。
本文主要介绍F429的捕获功能实现原理。
主要参考文献:
RM0090参考文档
高级时钟功能框图
在高级时钟中,捕获功能大致如上面所示。其功能模块大致分成两个部分:
输入阶段
捕获/比较阶段
整个过程大致为:将信号通过管脚输入,在输入阶段经过滤波边缘检测等处理之后检测是否有预设的有效边沿信号,若出现有效边沿,则将计数器的值保存在捕获/比较寄存器中。若配置中断,DMA使能,则将触发中断/DMA。然后,在中断/DMA触发后,程序中继续处理捕获。
输入阶段
其中,输入阶段的详细逻辑框图可以如上图所示。
滤波器:若外部信号高频杂波比较多的情况下,可以考虑使用滤波器。通过滤波器可以达到去除高频信号的目的,其有TIMx_CCMx的位ICxF[3:0]配置。
边沿检测器:通过该模块,决定触发信号是上升沿有效还是下降沿有效。通过寄存器你TIMx_CCER中的CC1P/CC1NP来配置。
来源选择:通过该模块选择通道触发信号的来源。通过TIMx_CCMR1寄存器的CC1S[1:0]位来配置。
分频器:通过该模块对触发信号进行分频。该分频器通过TIMx_CCMR1的ICPS[1:0]位与TIMx_CCER寄存器中CC1E进行配置。
捕获/比较模块
在该部分,只看左半边,也就是捕获部分。
通过CC1S,用来确定该通道是输入通道。
通过CC1E,用来说明该通道捕获使能。
通过CC1G,可以用来模拟触发捕获信号。
经过以上正确配置,捕获信号IC1PS传入该模块。则将计数器的值存入捕获/比较寄存器中,在中断响应函数中,可以将该数值读取。
效果
发生捕获事件时:
TIMx_CCR1 寄存器会获取计数器的值。
将 CC1IF 标志置 1(中断标志)。如果至少发生了两次连续捕获,但 CC1IF 标志未被清零,这样 CC1OF 捕获溢出标志会被置 1。
根据 CC1IE 位生成中断。
根据 CC1DE 位生成 DMA 请求。
复位模式
当触发输入信号发生变化时,计数器以及预分频器可重新初始化。此外,如果
TIMx_CR1
寄存器中
URS
位处于低电平,则会发生更新事件 UEV 。然后,所有预装载寄存器(TIMx_ARR 和 TIMx_CCRx)都将更新。换言之,当
URS
位处于低电平,每次复位触发事件发生时,都触发更新事件与更新中断。
前言
捕获功能是高级定时器的重要功能之一。捕获功能就是检测ARM管脚是否出现对应的跳动边沿,若出现,则将计数值的值锁存起来。即用于测量指定跳变边沿出现的时间。
本文主要介绍F429的捕获功能实现原理。
主要参考文献:
RM0090参考文档
高级时钟功能框图
在高级时钟中,捕获功能大致如上面所示。其功能模块大致分成两个部分:
输入阶段
捕获/比较阶段
整个过程大致为:将信号通过管脚输入,在输入阶段经过滤波边缘检测等处理之后检测是否有预设的有效边沿信号,若出现有效边沿,则将计数器的值保存在捕获/比较寄存器中。若配置中断,DMA使能,则将触发中断/DMA。然后,在中断/DMA触发后,程序中继续处理捕获。
输入阶段
其中,输入阶段的详细逻辑框图可以如上图所示。
滤波器:若外部信号高频杂波比较多的情况下,可以考虑使用滤波器。通过滤波器可以达到去除高频信号的目的,其有TIMx_CCMx的位ICxF[3:0]配置。
边沿检测器:通过该模块,决定触发信号是上升沿有效还是下降沿有效。通过寄存器你TIMx_CCER中的CC1P/CC1NP来配置。
来源选择:通过该模块选择通道触发信号的来源。通过TIMx_CCMR1寄存器的CC1S[1:0]位来配置。
分频器:通过该模块对触发信号进行分频。该分频器通过TIMx_CCMR1的ICPS[1:0]位与TIMx_CCER寄存器中CC1E进行配置。
捕获/比较模块
在该部分,只看左半边,也就是捕获部分。
通过CC1S,用来确定该通道是输入通道。
通过CC1E,用来说明该通道捕获使能。
通过CC1G,可以用来模拟触发捕获信号。
经过以上正确配置,捕获信号IC1PS传入该模块。则将计数器的值存入捕获/比较寄存器中,在中断响应函数中,可以将该数值读取。
效果
发生捕获事件时:
TIMx_CCR1 寄存器会获取计数器的值。
将 CC1IF 标志置 1(中断标志)。如果至少发生了两次连续捕获,但 CC1IF 标志未被清零,这样 CC1OF 捕获溢出标志会被置 1。
根据 CC1IE 位生成中断。
根据 CC1DE 位生成 DMA 请求。
复位模式
当触发输入信号发生变化时,计数器以及预分频器可重新初始化。此外,如果
TIMx_CR1
寄存器中
URS
位处于低电平,则会发生更新事件 UEV 。然后,所有预装载寄存器(TIMx_ARR 和 TIMx_CCRx)都将更新。换言之,当
URS
位处于低电平,每次复位触发事件发生时,都触发更新事件与更新中断。
举报
更多回帖
rotate(-90deg);
回复
相关问答
谁有
F429
的Altium Designer库?
2016-10-10
3695
F429
怎么
实现
开发板与PC的WiFi通信
2019-04-02
1844
F429
VI芯片是否支持24位颜色?
2023-01-04
201
请问
F429
能刷几帧图片?
2020-03-26
1728
F429
的程序怎样移植到
F
103上?
2017-08-05
4606
请问
F429
核心板要做等长布线吗?
2020-04-13
1551
请问stm32
f429
如何显示u盘中的中文文件名?
2024-04-17
137
在
F429
中如何配置中断优先级组?
2022-02-10
960
H7双网口/
F429
双网口/
F
407双网口具有哪些性能?
2022-02-28
1870
STM32
F
407和STM32
F429
芯片能不能互换?
2023-10-19
425
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分