编码器M法测速CubeMax配置

描述

为了进行测速,我们一共需要3个定时器,作用分别是:①输出PWM;②编码器模式进行脉冲计数;③计时,确定每次测速的时间间隔。

其中,用于定时的定时器③可以用输出PWM的定时器①代替,输出PWM的定时器一样有更新中断,只要在更新中断里运行测速程序即可。

但由于PWM定时器的频率很快,所以我们会间隔很多个更新中断后进行测速。

具体配置如下:

TIM2:编码器输入定时器

编码器

这里开启了两个通道计数,即Encoder Mode中设置为Encoder Mode TI1 and TI2。这里就是上文倍频技术的4倍频。

编码器模式下的定时器其实是个计数器,在编码器的脉冲到来时,Counter会相应地加和减,正转时加,反转时减,溢出后到达另一个极端值,比如说向上计数到达20001时会变成0

接下来我们需要设定编码器的两个引脚为上拉,防止误触发。

编码器

TIM3:PWM输出定时器

STM32F103的定时器时钟来源于APB总线时钟,最高为72MHz,我们一般也配置为72MHz。APB时钟经过PSC分频后得到实际的定时器的计数频率。定时器的计数频率为

编码器

当计数值达到ARR寄存器的设定值后计数值归零,重新开始计数,完成一个周期。在一个周期中,PWM高电平时间由比较寄存器(ARRARR)的值决定。

在设置PWM mode1且向上计数时,计数值小于ARR的值时是高电平,大于ARR值是低电平。所以PWM频率是这样计算的

编码器

编码器

上图中设置初始PWM频率为100Hz。但是设置频率最好在20Hz~20000Hz以外,因为这个频率内的PWM波会让电机发出明显的电流声。我们可以将PSC设置为3-1,将ARR设置为1000-1,我这里作为演示就先不管了。

TIM4:计时间隔定时器

编码器

设定为10Hz即1秒计算10次速度。

最后要开启中断,并保证编码器定时器的中断优先级高于计时间隔定时器的中断优先级,避免编码器输入被间隔计时中断。

编码器

其他基础配置不再赘述。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分