xfttys 发表于 2026-1-9 20:48:57

PWM互补输出疑问!

各位老大!
芯片STC8H3K64S2,PWMA设置为PWM模式1,P33,P34输出互补波形。
在上电启动瞬间2个互补引脚都会输出大概300ns的高电平,mos管击穿,如何避免?


P_SW2 |= 0x80;
      
      P3M0 |= 0x18;
      P3M1 &= ~0x18;                        //PWM引脚设置 P33,P34

      
      PWMA_PS |= 0xc0;                        //PWM4: 输出引脚 PWM4P(P3.4), PWM4N(P3.3)
      PWMA_ENO |= 0xc0;                        //启用PWM4输出
      
      PWMA_PSCRH = 0x00;                         //预分频寄存器
      PWMA_PSCRL= 0x00;
      PWMA_DTR = 0x30;                         //死区时间配置
      
      PWMA_CCMR4 =0x68;                         //设置通道4为PWM模式
      PWMA_CCER2 = 0x50;                         //配置通道输出使能和极性
      
      PWMA_ARRH = 0x03;                         //设置PWM频率
      PWMA_ARRL = 0xE8;
      
      PWMA_CCR4H = 0x01;                         //设置PWM占空比
      PWMA_CCR4L = 0xF4;
                              
      PWMA_BKR= 0x80;                         //主输出使能 相当于总开关
//      PWMA_IER = 0x02;                         //使能中断
      PWMA_CR1 = 0x01;                         //使能计数器

DebugLab 发表于 2026-1-9 22:32:57

IO加上下拉电阻,拉到禁用的电平
IO初始化先设置电平为禁用的电平,再设置为推挽模式
MOS加上下拉电阻,拉到禁用的电平,也就是GS极之间接电阻

lcwswust 发表于 2026-1-10 09:04:49

P3M0赋值之前,先对P33、P34赋值0。

王昱顺 发表于 2026-1-10 09:41:20

默认I/O输出为高阻,需要对下管加一个下拉电阻(NMOS),上管可加上拉电阻或者不加,因为只要保证下管不导通,上管导通也无所谓的。
然后就是在设置I/O口模式前,首先对P33和P34赋值确定的电平,然后再改动I/O模式进行输出生效,此时外部的上拉/下拉电阻就是失效的了,因为已经由单片机接管
然后才是PWM配置互补,并且打开输出。

xfttys 发表于 2026-1-11 14:44:14

lcwswust 发表于 2026-1-10 09:04
P3M0赋值之前,先对P33、P34赋值0。

{:OK:}就是这个,先对P33、P34赋值0就正常了。
页: [1]
查看完整版本: PWM互补输出疑问!