无刷电机控制(2)霍尔传感器 HAL库配置

STM32内部信号走向

定时器的三个通道(CH1 CH2 CH3)通过XOR异或输出后变为单个信号,经过输入滤波器和边沿检测器后为TI1F_ED 然后到TRC 到 IC1 到 IC1PS

异或输出其实就是 输入为0和1时 输出1 (输入不同 那么输出1 输入相同 那么输出0)

如果是0、1、0的话 那么先将第一个0 和第二个1进行异或运算 得到1 结果的1与最后的0进行运算,得到1 所以最终 0 1 0 的异或输出为1

在无刷电机中的霍尔传感器有两个作用

1、输出脉冲给别的定时器(让定时器知道当前电机大概转到哪)

2、每来一个脉冲自动重装载寄存器中的值都会赋值给捕获比较寄存器1(类似于输入捕获),所以可以通过读取捕获比较寄存器1的值来获取当前速度

这里直接设置内部时钟作为时钟源,通道联合模式设置为霍尔传感器模式即可。

这里的预分频系数设置为83的原因是因为使用的是STM32F407 设置为83后,读取输入捕获寄存器1的值进行速度计算时方便。

预装载值拉满的原因是因为避免计数器溢出

注意 这里的com延时其实就是对应输入捕获寄存器2的值。

经验分享 程序员 微信小程序 职场和发展