【无标题】无感无刷直流电机电调程序系统解读
1. 电机驱动电路设计
换相控制电路主要由6个功率场效应管和一些外围电路等构成。为实现磁场旋转,星形连接的线圈A、B、C的导通顺序依次为:AB、AC、BC、BA、CA、CB,对应的导通场效应管依次为Q1Q4、Q1Q2、Q3Q2、Q3Q6、Q5Q6、Q5Q4。例如,当Q1Q4管导通时,电流的流经途径为:正极→Q1管→线圈A→M点→绕组B→Q4管→负极。此时,单片机给Q1的栅极提供PWM信号,通过控制Q1管输入端的PWM占空比调节电机转速。
2. 电机启动及换相
当AB相导通时,三相绕组已经产生磁场,在磁场力的作用下,电机开始转动,如果不换相的话,转子转动一定角度后就会在磁场力的作用下停止不动,因此,当转子转动一定角度后必须进行换相。那么如何决定何时换相呢?下面以从AB导通换到AC导通换相过程为例说明。
换相过程是由比较器决定的。比较器有正极输入端与负极输入端两个输入端口,假设其中负极输入端的信号来自线圈星形连接的中点M的电压,正极输入端信号来自C相电压,由于定子绕组产生的磁场分布特点,线圈C在旋转360°的过程中切割磁场产生的感生电动势会出现:正--负--正--负--正--负 的周期变化,在比较器看来,就会出现:下降沿--上升沿--下降沿--上升沿--下降沿--上升沿的循环变化。只要比较器感知到下降沿信号,就意味着电机该换相进入AC导通了。
3. 电机转速控制与比较器控制
根据STC15W408AS系列芯片的操作手册,要实现芯片的PWM输出,需要完成对PWM有关寄存器的设置,一般在PWM的初始设置中,重载值 {EPCnH,CCAPnH[7:0]}={0,00}, 比较值为 {EPCnL, CCAPnL[7:0]}={0,00},计数值为{0, CL[7:0]}={0,00},所以从一开始计数开始,就满足{0, CL[7:0]} >= {EPCnL, CCAPnL[7:0]},从而PWM输出高电平,使上半支场效应管截止,电机线圈没有电流通过。因此,需要对重载值 {EPCnH,CCAPnH[7:0]}进行赋值。鉴于飞控过程中无刷无感电机的控制原理是通过PPM脉冲信号给出的,因此需要对PPM信号进行识别并通过读出脉冲宽度的方式得到PWM的占空比数值。
3.1 转速控制(PWM设置)
电机转速是由脉冲宽度调节(PWM)决定的
3.1.1设置PCA计数脉冲频率=24M/4=6M.
CMOD = 5 << 1;
3.2.2给PCA的16位计数器赋初值.
CH=0; CL=0;
3.2.3 CA模块使能及脉宽调制输出.
CCAPM0 = 0x42;
3.2.4设置PWM为8位,重载值首位EPCnH=0、比较值首位EPCnL=0.
PCA_PWM0 = 0X00;
3.2.5设置9位比较器的重载值和比较值.【当PCA 模块工作在8位PWM模式时,重载值 {EPCnH,CCAPnH[7:0]}={0,00},
比较值 {EPCnL,CCAPnL[7:0]}={0,00}设置】
CCAP0H = 0x00; CCAP0L = 0x00;
3.2.6输出口设置. P11(CCP0) P10(CCP1) P37(CCP2)为PWM信号输出脚.
AUXR1 &= ~0x30.
3.2.7PWM0_L/PWM0输出高低电平设置.
PWM0_L=0; PWM1_L = 1; PWM2_L=0;
CCAP0H = PWM_Value; CCAP1H=0; CCAP2H=0;
如PWM_Value值较小,计数值很快从{0,00}达到{0,CCAP0H},比较器先输出低电平,再输出高电平,且低电平持续时间较短,结合实际电路,低电平时AB相导通。
3.2 比较器控制
3.2.1比较器下降沿触发的换相信号设置
CMPCR1 = 0x9C; //(1001 1100).
比较器使能, 下降沿中断使能, 选择P1.5口作为比较器的正极输入端, 选择外部端口P5.4(中点电压)作为比较器负极输入端.
3.2.2比较器正/负极输入端设置
ADC_CONTR = 0XCD; (1100 1101). ADC电源开,AD转换速度设置,ADC转换开启,并选择P1.5作为C相电压模拟输入通道. 该模拟输入电压经过ADC转换作为比较器的正极输入端.
随着转子继续旋转,线圈C 的感生电动势终将由正变负,从而在比较器输入端产生下降沿,进入比较器中断服务函数,step++,执行AC导通。
4 电调程序回顾
首先进入启动函数,然后执行换相函数,在换相函数中实现比较器中断,然后进入下一个换相序列:Start Motor()→StepXL():比较器使能→比较器中断→step++→StepXL().
更多推荐
所有评论(0)