【问题标题】:STM32 hall + encoder timer synchronizationSTM32霍尔+编码器定时器同步
【发布时间】:2017-10-15 06:10:18
【问题描述】:

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

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

芯片是stm32f103。

【问题讨论】:

  • 你没有指定芯片。

标签: controls stm32


【解决方案1】:

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

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

这在您的芯片中是否可行取决于定时器之间的互连。 请参阅 TIMx 内部触发连接 (ITR)。
SMS 位已处于编码器模式。您不能同时拥有重置模式和编码器模式。

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

【讨论】:

  • 芯片是f103。
  • 问题是,我不明白如何将编码器定时器配置为重置模式,因为重置模式 (100) 使用与编码器模式 1 (001) 相同的 SMS 位。因此,似乎不可能同时具有编码器模式和复位模式。除非我在手册中遗漏了一些细节..
  • @Martin 你是对的。这不可能。我改变了答案。
猜你喜欢
  • 2018-07-16
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多