连接霍尔传感器
可通过用于生成电机驱动 PWM 信号的高级控制定时器(TIM1 或 TIM8)以及图 114 中称为 “接口定时器”的另一个定时器 TIMx(TIM2、TIM3、TIM4 或 TIM5),实现与霍尔传感器的连接。3 个定时器输入引脚(TIMx_CH1、TIMx_CH2 和 TIMx_CH3)通过异或门连接到 TI1 输入通道(通过将 TIMx_CR2 寄存器中的 TI1S 位置 1 来选择),并由“接口定时器” 进行捕获。
从模式控制器配置为复位模式;从输入为 TI1F_ED。这样,每当 3 个输入中有一个输入发生 切换时,计数器会从 0 开始重新计数。这样将产生由霍尔输入的任何变化而触发的时基。
在“接口定时器”上,捕获/比较通道 1 配置为捕获模式,捕获信号为 TRC(请参见第 344 页的图 97:捕获/比较通道(例如:通道 1 输入阶段))。捕获值对应于输入上两次变化的 间隔时间,可提供与电机转速相关的信息。
“接口定时器”可用于在输出模式下产生脉冲,以通过触发 COM 事件更改高级控制定时器 (TIM1 或 TIM8)各个通道的配置。TIM1 定时器用于生成电机驱动 PWM 信号。为此,必 须对接口定时器通道进行编程,以便在编程的延迟过后产生正脉冲(在输出比较或 PWM 模 式中)。该脉冲通过 TRGO 输出发送到高级控制定时器(TIM1 或 TIM8)。
示例:霍尔输入与一个 TIMx 定时器相连接,每当霍尔输入发生更改,需要在所编程的延迟 过后更改高级控制定时器 TIM1 的 PWM 配置。
● 向 TIMx_CR2 寄存器的 TI1S 位写入“1”,使 3 个定时器输入经过异或运算后进入 TI1 输入通道。
● 时基编程:向 TIMx_ARR 写入其最大值(计数器必须通过 TI1 的变化清零)。设置预 分频器,以得到最大计数器周期,该周期长于传感器上两次变化的间隔时间。
● 将通道 1 编程为捕获模式(选择 TRC):向 TIMx_CCMR1 寄存器的 CC1S 位写入 “11”。如果需要,还可以编程数字滤波器。
● 将通道 2 编程为 PWM 2 模式,并具有所需延迟:向 TIMx_CCMR1 寄存器的 OC2M 位 写入“111”,CC2S 位写入“00”。
● 选择 OC2REF 作为 TRGO 上的触发输出:向 TIMx_CR2 寄存器的 MMS 位写入“101”。
在高级控制定时器 TIM1 中,必须选择正确的 ITR 输入作为触发输入,定时器编程为可产生 PWM 信号,捕获/比较控制信号进行预装载(TIMx_CR2 寄存器的 CCPC=1),并且 COM 事件由触发输入控制(TIMx_CR2 寄存器中 CCUS=1)。发生 COM 事件后,在 PWM 控制 位(CCxE、OCxM)中写入下一步的配置,此操作可在由 OC2REF 上升沿产生的中断子程 序中完成。
----------------------------------------------------------------------------------------------
图 114 为本示例的示意图。
----------------------------------------------------------------------------------------------