灵动微电子 · 2023年05月12日

灵动微课堂 |MM32SPIN0280内部时钟捕获外部HSE时钟

 频率测量 

测频法(计频法)

对一段标准时间内的被测信号的上升沿数量进行计数。

测频法误差

计数器只能进行整数计数,而在标准信号周期时间窗口内,却不一定刚好有整数个被测信号周期。因此测频法造成的最大测量误差为±1个被测信号。建议用于被测信号频率较高的情况。

image.png
测周法(计时法)

在被测信号的两个上升沿间标准时间的计数。

测周法误差

计数器只能进行整数计数,而在标准时间窗口内,却不一定刚好有整数个标准信号周期。建议用于被测信号频率较低的情况。

image.png

由于SPIN0280可以很便捷的捕获LSI和HSE的128分频,所以使用测周法。

 TIM2 通用定时器 

由一个16位可实时编程预分频器和一个32位计数方向可调的自动装载计数器组成,可以为用户提供便捷的计数定时功能,计数器时钟由预分频器分频得到。

TIM2具有多种用途:输入功能(测量输入信号的脉冲宽度、频率,PWM输入等),输出功能(PWM输出、单脉冲模式输出等)。

本次主要介绍TIM2的输入捕获功能:

输入捕获部分包括数字滤波器、多路复用、预分频器等,结构如下:

image.png

输入捕获模式下,当检测到信号ICx上的有效边沿后,计数器的当前值被锁存到对应的影子寄存器上,再复制到对应的捕获比较寄存器中。当开启了中断或DMA使能,发生捕获事件时,将产生相应的中断或DMA请求。发生捕获事件时,会将状态寄存器(TIM2\_SR)中的捕获标志位 CCxIF 置 1,通过配置 CCxIF=0或读取TIM2\_CCRx中的数据,清除CCxIF标志位。当CCxIF未被清零时,发生输入捕获事件,重复捕获标志位CCxOF将会被置1,通过配置CCxOF=0,可以清除CCxOF标志位。

SPIN0280的通用定时器TIM2有输入选项寄存器(TIM2\_OR),可以很便捷的复用通道四,配置输入为CH4 GPIO 或比较器输入或LSI或HSE的128分频

image.png

SPIN0280内部时钟捕获外部HSE时钟具体步骤

1 开启HSI时钟(8M)并倍频(最高96MHz)

2 TIM2挂载在APB1上,使能TIM2时钟

3 配置TIM2,计数器清空,由低向高计数,上升沿触发,时钟不分频

4 配置TIM2的通道4作为输入捕获,上升沿触发,输入信号8分频

5 开启TIM2通道4的时钟中断,并配置NVIC和编写中断函数

6 开启HSE时钟,等待稳定

7 配置TIM2通道4输入信号为HSE的128分频

示例代码如下:

image.png
image.png
示例输出结果:

image.png

作者:灵动MM32
文章来源:灵动MM32MCU

推荐阅读

更多MM32F5系列资料请关注灵动MM32 MCU专栏。如想进行MM32相关芯片技术交流,请添加极术小姐姐微信(id:aijishu20)加入微信群。
推荐阅读
关注数
6103
内容数
272
灵动MM32 MCU相关技术知识,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息