背景,自己写算法实现六步换相,想采用PWM-ON方式
1,使用LKS32MC072芯片
2. 外置预驱,上下管高有效。
目前A相PWM输出正常,B相上管关闭,下管常开,到这里都是正常的
C相理论来讲应该是上管关闭,下管也关闭,但是我设置了
MCPWM0_TH00 = (-100);//
MCPWM0_TH01 = (100); //750
MCPWM0_TH10 = (-0);
MCPWM0_TH11 = (0);
MCPWM0_TH20 = (-0);
MCPWM0_TH21 = (0);
C相下管输出高电平,相当于下管也打开了。默认电平设置的是低
MCPWM_InitStructure.CH0P_default_output = MCPWM0_LOW_LEVEL;
MCPWM_InitStructure.CH0N_default_output = MCPWM0_LOW_LEVEL;
MCPWM_InitStructure.CH1P_default_output = MCPWM0_LOW_LEVEL; /* CH1P对应引脚在空闲状态输出低电平 */
MCPWM_InitStructure.CH1N_default_output = MCPWM0_LOW_LEVEL; /* CH1N对应引脚在空闲状态输出高电平 */
MCPWM_InitStructure.CH2P_default_output = MCPWM0_LOW_LEVEL;
MCPWM_InitStructure.CH2N_default_output = MCPWM0_LOW_LEVEL;
然后我看了手册里面的
14.1.3 MCPWM 特殊输出状态
电机控制中经常会用到全 0 和全 1 输出状态,以下互补模式设置可以得到期望的输出。
1. 如果 THn0≥THn1,芯片处于恒 0 状态(CH<n>P 关闭,CH<n>N 开启),无死区
2. 如果 THn0=-TH,THn1=TH,芯片处于恒 1 状态(CH<n>P 开启,CH<n>N 关闭),无死区
好像也没有说明如何把上下管都关掉的状态。
目前能想到的方法就是把pwm io重新初始化成普通IO,然后拉低。
然后参考了LKS03的bldc例程,发现并没有什么特殊的处理,请问这里要怎么处理我这种状态 |