在C2000的HVBLDC_SENSORLESS例子中,为什么调用换向驱动CMTN_TRIG_MACRO时,只有在CmtnPointer==5时,才调用DELAY_30DEG_MACRO(v)进行换向延迟,在BEMF过零点时,不是应该每个BEMF过零点时,都需要进行30°延迟,以决定换向点么?
TI的这个例子有点不太理解,请教一下各位高手!
另外还有一个疑问,是关于HVBLDC_SENSORLESS例子中的MainISR中的转子对齐功能,没理解在MainISR中转子对齐的原理!求教!
MicroE:
求指导~~~~
在C2000的HVBLDC_SENSORLESS例子中,为什么调用换向驱动CMTN_TRIG_MACRO时,只有在CmtnPointer==5时,才调用DELAY_30DEG_MACRO(v)进行换向延迟,在BEMF过零点时,不是应该每个BEMF过零点时,都需要进行30°延迟,以决定换向点么?
TI的这个例子有点不太理解,请教一下各位高手!
另外还有一个疑问,是关于HVBLDC_SENSORLESS例子中的MainISR中的转子对齐功能,没理解在MainISR中转子对齐的原理!求教!
Saiting Lin:
我看到这里也有这个疑问,不知道你解决了这个疑问没有?
在C2000的HVBLDC_SENSORLESS例子中,为什么调用换向驱动CMTN_TRIG_MACRO时,只有在CmtnPointer==5时,才调用DELAY_30DEG_MACRO(v)进行换向延迟,在BEMF过零点时,不是应该每个BEMF过零点时,都需要进行30°延迟,以决定换向点么?
TI的这个例子有点不太理解,请教一下各位高手!
另外还有一个疑问,是关于HVBLDC_SENSORLESS例子中的MainISR中的转子对齐功能,没理解在MainISR中转子对齐的原理!求教!
Saiting Lin:
楼主,我看一下,你理解错了。
CMTN_TRIG_MACRO 只计算了上一个电周期的总时间,从而得到延时30度的时间周期。放在哪个状态下计算都无谓。
NOISE_WINDOW_CNT_MACRO 对过零信号进行滤波处理。
具体的延迟30度得到换向点是在 CMTN_TRIG_MACRO 这个里面,在 DelayTaskPointer 为1的分支里,延时到后即置了 CmtnTrig。