打印

LKS32 互补PWM如何同时输出低电平

[复制链接]
1363|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lz34|  楼主 | 2024-10-26 09:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
背景,自己写算法实现六步换相,想采用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例程,发现并没有什么特殊的处理,请问这里要怎么处理我这种状态

使用特权

评论回复
沙发
玉树临风小黑龙| | 2024-10-28 13:38 | 只看该作者
凌鸥的PWM模块比较特殊,可以通过配置极性的途径实现各种想要的输出,在PWM输出使能的情况下,可以将极性配置成MCPWM0_IO01 =0x0000 | 0x000c;那么实现的输出就是CH<0>P和CH<0>N强制输出低电平,CH<1>P和CH<1>N输出按PWM计数进行互补输出

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

22

帖子

0

粉丝