bbgjtotg 发表于 2025-8-1 08:13:28

请问这个异常脉冲是怎么回事?

在使用STC8H2K08U,主频33.1776MHz驱动单相有感电机,使用上臂PWM切割,下臂IO推挽输出,HALL引脚中断换相。
其换相代码如下所示:
//AH+BL
void motor_hb_on(u16 sw)//原为ha
{
      //pwm1关闭,pwm0打开,      
////////////////////      PWMA_ENO = 0x00;
      PWMA_CCR3=0;                //BH重载和比较都设为最高位,0是全低,1023是全高
      //或者可用用pwm输出使能关闭:
      AL=0;
      
      interval();         
      BL=1;
      
//      interval();
      PWMA_CCR1=sw;      //AH可调
}

//AL+BH
void motor_ha_on(u16 sw)//原为hb
{      
      //关闭1p输出
      ////////////////////      PWMA_ENO = 0x00;
      PWMA_CCR1=0;                //AH重载和比较都设为最高位,小于100是高电平,大于100是低电平,也就是占空比10%
      BL=0;
      
      interval();                                                               
      AL=1;
      
//      interval();      
      PWMA_CCR3=sw;      //BH可调
}

使用示波器检测下臂输出,发现每次换相,下臂由高电平切到低电平后,下臂会随机出现一个长达50us的异常脉冲;其示波器图像如下:


上图黄色为上臂PWM,绿色下臂IO推挽;
请问这可能是什么原因导致的?试过将IO推挽换为准双向,也没有改善;

国芯人工智能 发表于 2025-8-1 08:18:00

您提到的“异常脉冲”可能与电机驱动控制逻辑、PWM信号配置或HALL传感器中断处理有关。在使用STC8H2K08U单片机驱动单相有感电机时,若出现异常脉冲现象,需从以下几个方面进行排查和优化:

1. PWM信号配置问题
   在您的代码中,PWMACCR3和PWMACCR1分别用于控制上臂和下臂的PWM占空比。需要注意的是,STC8H系列的PWM模块通常支持互补输出模式,若未正确配置互补通道的死区时间(Dead Time),可能导致上下桥臂同时导通,造成短路或异常脉冲。

   建议检查以下几点:
PWM通道是否配置为互补输出模式;
死区时间设置是否合理(建议至少5μs以上);
是否存在PWM输出使能未关闭导致的残留信号。

2. HALL中断触发与换相逻辑冲突
   HALL传感器用于检测转子位置并触发换相操作。若HALL中断处理程序执行时间过长或与PWM控制逻辑冲突,可能导致换相不及时或误触发,从而引发异常脉冲。

   建议优化措施:
确保HALL中断服务函数(ISR)尽可能简短,避免长时间阻塞;
在换相过程中,确保PWM输出状态切换顺序正确,避免上下桥臂同时导通;
检查HALL信号的滤波和去抖处理,防止误触发。

3. IO推挽输出与PWM信号干扰
   您提到下臂使用IO推挽输出,而上臂使用PWM输出。这种混合控制方式可能会因信号电平不一致或切换时序不当,导致异常脉冲。

   优化建议:
确保IO推挽输出与PWM信号切换时序一致,避免电平冲突;
若条件允许,建议统一使用PWM控制上下桥臂,以提高控制精度和稳定性。

4. 软件延时函数 interval() 的影响
   interval() 函数用于在换相过程中引入延时。若该函数实现方式不准确(如使用循环延迟而非定时器),可能导致换相时序不精确,进而引发异常脉冲。

   建议:
使用定时器替代软件延时,提高控制精度;
确保延时时间符合电机换相要求(通常在几微秒至几十微秒之间)。

综上所述,建议您首先检查PWM配置和死区时间设置,确保上下桥臂不会同时导通;其次优化HALL中断处理逻辑,避免误触发;最后确认换相过程中的时序和延时是否准确。通过以上调整,可有效减少或消除异常脉冲现象。

[本文内容由国芯人工智能辅助生成,仅供参考]

bbgjtotg 发表于 2025-8-1 08:32:08

国芯人工智能 发表于 2025-8-1 08:18
您提到的“异常脉冲”可能与电机驱动控制逻辑、PWM信号配置或HALL传感器中断处理有关。在使用STC8H2K08U单 ...

啊?

JDBJXB 发表于 2025-8-1 09:09:33

bbgjtotg 发表于 2025-8-1 08:32
啊?

那是论坛的AI,别理他

bbgjtotg 发表于 2025-8-1 09:38:41

JDBJXB 发表于 2025-8-1 09:09
那是论坛的AI,别理他

好的{:4_167:}

DebugLab 发表于 2025-8-1 09:48:26

这是逻辑分析仪还是示波器图像

bbgjtotg 发表于 2025-8-1 10:05:10

DebugLab 发表于 2025-8-1 09:48
这是逻辑分析仪还是示波器图像

示波器的,是H桥同一侧上下臂AH和AL的示波器抓取的信号,当从AH+BL切换为BH+AL时,AL会随机出现一个50us的高电平;当从BH+AL切换为AH+BL时,BL会随机出现一个50us的高电平;

网老四 发表于 2025-8-1 12:18:31

确认下霍尔信号的抖动和噪声有没有彻底滤除,霍尔中断里面做个防抖处理

王昱顺 发表于 2025-8-2 10:48:16

bbgjtotg 发表于 2025-8-1 10:05
示波器的,是H桥同一侧上下臂AH和AL的示波器抓取的信号,当从AH+BL切换为BH+AL时,AL会随机出现一个50us ...

可能是hall给的变换电平存在噪声,可以尝试用定时器产生一个虚拟的换向操作,暂时不使用外部的hall信号,看看还有没有这个异常电平

梁工 发表于 2025-8-4 16:16:40

霍尔增加RC滤波。
页: [1]
查看完整版本: 请问这个异常脉冲是怎么回事?