目录
一,引入
上篇博客,我们对于定时器的计数核心——时基单元作了细致的了解。这篇博文,我们来介绍定时器的四大功能模块之一——输入捕获模块。
输入捕获模块,顾名思义,当外界有电平输入MCU时,定时器的输入捕获模块能够捕获到电平,进而通过时基单元(计数器),记录捕获的电平的时间、占空比等数据。
了解了大体功能后,我们来具体了解输入捕获功能的具体结构与实现步骤。
二,具体结构
图 2.1 为输入捕获功能的框图:
图 2.1 输入捕获模块
此处,我们以通道 1 为例。
TIMx_CH1为外界电平输入引脚,TIMx_CHy的定义引脚可在数据手册中的引脚定义目录查看(图2.2)。
图 2.2 引脚定义表
注意到,在通道1至3上,连接着一个异或门。异或门的功能机理为“相异出1,相同出0”——当异或门的两个(或多个)输入端口的逻辑值不同时(一个为0,另一个为1),输出端口将输出高电平(逻辑1);而当输入端口的逻辑值相同时(都为0或都为1),输出端口将输出低电平(逻辑0)。这个异或门是用来连接三相无刷电机的霍尔传感器的,在此处不作说明。
/*
本人曾写过一篇博客,介绍无霍尔传感器控制无刷电机换相(无感控制),原文指路:
*/
不看异或门:电平通过TIMx_CH1端口进入定时器,通过输入滤波器和边缘检测器后,通过边沿检测,到达预分频器,最后到达捕获/比较寄存器。当发生有效的电平转换时(通过通道1的电平发生翻转,被捕获/比较寄存器检测到),计数器中的值传到捕获/比较寄存器中(输入比较模块框图解释)。
由上述语段,可以发现,捕获/比较寄存器(TIMx_CCRy)既需要检测电平变化,又需要储存计数器中的值,且捕获比较寄存器也有影子寄存器。ÿ