STM32大厅+编码器定时器同步

时间:2017-05-16 08:54:37

标签: controls stm32

我正在使用两个定时器tim3和tim4来计算电机编码器读数(tim3)和处理霍尔传感器输入(tim4。输入ch1,ch2和ch3与在霍尔接口模式下运行的TIM4的TI1进行异或)。我现在要做的是同步两个定时器,以便在大厅切换时,重置编码器定时器。然而,似乎没有办法将编码器模式(在SMS寄存器中)与复位模式组合,使得当tim4 TRGO切换时计数器tim3被复位。似乎我只能选择一种模式或另一种模式,而不是两者的组合。

也许我误解了如何将两个定时器组合起来进行转子位置估算?在不使用ISR手动重置计数器的情况下,将stm32上的霍尔传感器读数与编码器读数组合和同步的最佳方法是什么? (我最好在硬件中自动执行此操作。我手动解决方案有效,但我对此并不满意)。

芯片是stm32f103。

1 个答案:

答案 0 :(得分:0)

在CR2中,每个定时器都有一个输出信号(MMS)。在SMCR中,每个定时器都有输入信号模式(SMS)。

当您将霍尔定时器设置为比较脉冲并将编码器定时器设置为重置模式时,我认为编码器定时器将在每次霍尔定时器CH1上的输入捕获时重置

如果芯片可以实现,则取决于定时器之间的互连。 请参见TIMx内部触发连接(ITR)。
SMS位已经处于编码器模式。您无法同时拥有重置和编码器模式。

您可以触发从内存到TIMx-> EGR:UG的DMA操作 TIM3_CH1可以在DMA1通道6上触发半字存储器到外设操作,数据0x0001到TIM4-> EGR。
这将导致TIM4重新初始化计数器。