霍尔传感器接口
TIMx_CR2的TI1S位,置1则开启定时器输入异或功能,此时TIMx_TI1、TI2和TI3连接一起,XOR输出的值是三者异或之后的值。(通用定时器和高级定时器都可开启霍尔传感器接口)
霍尔接口模式下
①在TI1,三个通道的信号进行异或,霍尔变换一次,进行一次跳变沿变换,同时将cnt的值付给ccr1并且清0
②在TI2,异或之后的信号可以作为触发源。比如TIM5开启霍尔模式,连接到TIM8,那么当tim5接收到异或跳变之后,tim5_cnt开始计数,当cnt>ccr时候(pwm2模式),(给tim8输出)输出一个高电平。Tim8接收到高电平就产生com事件;
在cubeMX上的配置:
图1
一般hall传感器需要开启中断,因为检测到无刷电机到达位置之后又需要进行换相。
图2
无刷电机方波驱动
根据前面所学,无刷电机方波驱动基本思路:霍尔传感器读取永磁体当前位置,根据六个不同位置控制高级定时器的六个通道进行六步换相,不断循环换相过程,电机就转起来了。(原理参考以前笔记,此处不再赘述)
CubeMX配置:
1.关于霍尔传感器得分配置在上图
2.关于高级定时器的配置(引脚配置依照硬石F4原理图):
图3
其中,
2除应该设置为复位模式,在输出之后即使将cnt清零
3处参考下表(内部出发连接)
图4
4处正常配置为pwm输出通道和互补通道
图5
图6
图5是预分频系数以及周期的设置,记得设置死区时间
图6是6个通道的具体配置,初始pwm设置为0;
Keil:
在开始阶段定义变量pwm,对位置读取函数和六步换相函数进行声明
图7
在main函数里面,开启中断,使能com事件,并给电机一个初速度
图8
具体的两个函数:
图9
图10
图9是对tim5三个通道的读取,通道一是高位,所以需要左移;
图10是六步换相的函数
烧录之后,电机就“咕噜咕噜”地转起来了。