AURIX TC3XX系列之SPE模块BLDC驱动开发
1、BLDC六步换相原理
BLDC主要由一个转子,和互错120°三个定子线圈组成,通过不同的方式给三个定子线圈通电,让转子转到我们想要的位置。而让转子转到目标位置之前,我们需要知道转子的位置,一种方式是通过安装三个霍尔元件,通过三个霍尔信号,知道转子的位置区间,他们的关系如下表所示:
霍尔信号A | 霍尔信号B | 霍尔信号C | 转子位置 |
1 | 0 | 0 | 330° - 30° |
1 | 1 | 0 | 30° - 90° |
0 | 1 | 0 | 90° - 150° |
0 | 1 | 1 | 150° - 210° |
0 | 0 | 1 | 210° - 270° |
1 | 0 | 0 | 270° - 330° |
知道转子位置后,便可以通过导通方式,让转子转到目标位置。
例如让C+,A-导通,那么转子的目标位置便是30°。
通过改变ABC三相6个桥臂的导通方式,让转子目标位置分别为30°,90°,150°,210°,270°,330°,如此循环便可以实现电机的反转,反过来便是正转。
当然这种六步换相方式只能应用一些对于精度要求不高的情景。
2、SPE简介
Aurix的SPE模块专门用于六步换相,可以通过与TIM,TOM的结合实现对BLDC六个驱动桥臂的高低电平控制,达到六步换相的效果。
传感器模式评估模块SPE属于GTM的子模块,可用于评估三个霍尔传感器输入,并与TOM模块一起支持BLDC的驱动。因此,输入信号已经在连接的TIM通道中被过滤。此外,如果需要使用DPLL计算电机的转速,SPE子模块可以作为MAP子模块的输入。SPE模块与整个GTM体系结构概念如下图:
SPE可以从TIM[i] _CHx(48)、TIM[i] _CHy(48)和TIM[i_CHz(48)信号组合中确定旋转方向。在这个输入信号上应用模式匹配算法来生成代表这些输入模式之间的时间关系的SPEx_DIR信号。三个输入信号的可能示例模式如下图所示,100 – 110 – 010 – 011 – 001 – 101 – 100
每当TIM[i]_CH[x](48),TIM[i]_CH[y](48) or TIM[i]_CH[z](48)其中一个信号改变,便会对三个信号进行采样。
3、SPE和TOM的连接
4、SPE架构
SPE[i]_PAT寄存器支持有效的三种输入pattern: TIM[i]_CH[x](48)、TIM[i]_CH[y](48)和TIM[i]_CH[z](48)。输入pattern是可编程的。有效位显示所编程的pattern是否有效。上图显示了为定义好的输入pattern编写SPE[i]_PAT寄存器的过程。旋转方向由有效输入pattern的顺序决定。这个旋转方向定义了SPE_PAT_PTR是递增(DIR=0)还是递减(DIR=1)。每当检测到有效的输入pattern时,中断信号NIPD产生,SPE_PAT_PTR进行递增或者递减,并将新的输出控制信号SPE[i]_OUT(x)发送到相应的TOM子模块。
为了直接命令向前或向后旋转,SPE提供了SPE[i]_APT_PTR和SPE[i]_PAT_PTR_BWD两个指向数组SPE[i]_OUT_PAT[z]的指针。两者都可以指向同一时间点的SPE[i]_OUT_PAT[z]的不同值。SPE[i]_APT_PTR用于指向向前命令的模式,SPE[i]_PAT_PTR_BWD用于指向向后命令的模式。在启动时,必须将两个指针配置为一个初始值,该初始值对应于SPE[i]_OUT_PAT[z]的启动pattern的不同方向。对于由SPE_NIPD指示的每个有效的新输入pattern,两个指针将根据检测到的方向递增或递减。从向前切换到向后可以通过改变寄存器SPE[i]_CMD中的SPE_CTRL_CMD从选择SPE[i]_PAT_PTR到选择SPE[i]_PAT_PTR_BWD,反之。
以上桥输出PWM占空比为例,预期的行为如下图所示:
使用SPE_CTRL_CMD = 0b10或0b11命令,可以将专用的可配置输出模式配置为SPE_OUT_PAT6或SPE_OUT_PAT7模式输出。例如,如果从指针SPE[i]_PAT_PTR切换到SPE[i]_PAT_PTR_BWD,反过来,都会引入死区时间。例如,如果在SPE[i]_OUT_PAT6中每个输出的值为0b10(即设置SPE_OUT(n)为0),那么在SPE[i]_PAT_PTR和SPE[i]_PAT_PTR_BWD之间切换时便引入一段时间的死区。
在SPE[i]_CTRL STAT寄存器内实现寄存器SPE[i]_IN_PAT位域,其中的输入模式历史由SPE子模块存储。当SPE[i]_PERR中断发生时,CPU可以通过分析SPE[i_CTRL_STAT寄存器内的位域NIP可读的位模式来确定传感器损坏。每当在输入行TIM[i]_CH[x](48)、TIM[i_CH[y](48)或TIM[i]_CH[z)(48)中检测到有效边时,SPE[i]_CTRL_STAT寄存器中的输入模式就会更新。然后将模式位场移位。在SPE[i]_CTRL_STAT寄存器内生成的输入模式历史记录如下图所示。除了传感器模式评估之外,SPE模块还为SPE模块控制的所有TOM通道提供了快速关闭的功能。通过在寄存器SPE[i]_CTRL_STAT中设置位FSOM来启用该特性。快速关闭电平本身在寄存器SPE[i]_CTRL_STAT的位字段FSOL中定义。用于触发快速关闭的TIM输入是TIM通道6或TIM通道7,具体取决于连接到SPE模块的TIM实例。