金凌新电源 发表于 2025-2-27 15:09:02

PWM开起波形异常

    //开机延时输出
    PWMA_BKR=0x0C;            //禁止中断//并设定保护输出低电平
    PWMA_EGR=0x80;            //产生刹车事件


    PWMA_ETRPS=0x04;      //刹车脚//0X04=不用外置刹车脚


    PWMA_CCER1 = 0x00; //写 CCMRx 前必须先清零 CCxE 关闭通道
    PWMA_CCER2 = 0x00;

    PWMA_CCMR1X = 0x00;      //0=通道1:PWM2模式
    PWMA_CCMR1 = 0x70;      //70 78 PWM模式时OC1PE位一定置1//中断中有重写//后8=预装载
    PWMA_CCMR2X = 0x00;      //1=通道2:不对称PWM2模式
    PWMA_CCMR2 = 0x00;      //下面有重写
    PWMA_CCMR3X = 0x00;      //0=通道3:PWM2模式
    PWMA_CCMR3 = 0x00;      //下面有重写
    PWMA_CCMR4X = 0x00;      //1=通道4:不对称PWM2模式
    PWMA_CCMR4 = 0x00;

    PWMA_CCER1 = 0x05;//0x55;//0x57; //配置CC1NP改变极性
    PWMA_CCER2 = 0x00;//0x5D;

   
    //PWMA_BKR=0xFC;      //使能刹车//起机时必需低电平有效//此处不用进不到中断//下面有重复
    PWMA_IOAUX=0;//0xFF;      //0xFF=刹车脚也控制输出
    PWMA_OISR=0;//0xFF;            //PWMA_OISR | 0x03;//空闲输出的电平//刹车时输出的电平//没用

    PWMA_DTR= FEQ_DREB;//死区
    PWMA_ARRH = (u8)(PWM_PERIOD >> 8); //设置周期时间
    PWMA_ARRL = (u8)PWM_PERIOD;


    PWMA_PS = 0x00;          //高级 PWM 通道输出脚选择位//默认引脚
    PWMB_PS = 0x00;          //高级 PWM 通道输出脚选择位//默认引脚


    UpdatePwm();

    PWMA_CR1 = 0xA1;//0xA1;=不立即更新      //0x21=中心对齐模式1,开始计时立即更新//0x21//是否立即更新PWM
    PWMA_CR2 = 0x00;

    PWMA_ETR = 0x00;

    PWMA_IER = 0x02;          //使能PWMA中断 0x10=PWM4中断 0x90=PWM4中断加刹车///////中断/////
    IP2         = 0x04;          //中断优先级
    IP2H   = 0x04;          //中断优先级


    //PWMA_BKR=0xFC;      //打开PWM
    PWMA_BKR=0xE0;      //打开PWM//此项有锁定PWM寄存器功能

只使用PWM1

使用PWMA_ENO = 0x00;关
PWMA_ENO = 0x03;开
开的波形就乱了


金凌新电源 发表于 2025-2-27 15:11:50

使用PWMA_CCMR1关和开也是乱的
PWMA_CR1 = 0x21;    这个由0XA1 换成0X21也不行

PWMA_ENO资料上没看到有这个的图示

DebugLab 发表于 2025-2-27 16:03:33

强制为低不行吗?试试直接设置IO口为0,
如果这个异常波形是受GPIO控制器控制的,
直接设置I/O口为0应该可以解决


金凌新电源 发表于 2025-2-27 17:33:39

没用
受结束时波形干扰,结束时如果是宽的,打开时就是宽的(设定打开是窄的)

王昱顺 发表于 2025-2-27 18:50:35

能否详细描述一下您的需求?或者给出一个可以复现问题的工程文件?
这边看了一下代码,
有一些地方的注释和实际的功能并不符合,
并且代码上显示是互补的pwm输出,示波器上看并不是互补的输出。
不然不好确定到底是哪里的问题。

神农鼎 发表于 2025-2-27 19:50:19

就是楼主要给出PWM部分的完整代码,和需求,
我们研发人员才好帮您定位您错在哪

或者您定是哪个型号,要用哪几个管脚,
PWM实现啥功能,我们提供演示程序给您

梁工 发表于 2025-2-28 23:28:32

说明一下你要求的输出波形,否则我不知道你要输出什么的波形。

金凌新电源 发表于 2025-3-1 18:51:14

while (1){
    PWMA_ARRH = 100;               //设置周期时间
    PWMA_ARRL = 0;

    PWMA_CCR1H =50; //设置占空比时间
    PWMA_CCR1L = 0;
PWMA_ENO = 0x00;

delay_us(10);

    PWMA_ARRH = 10;               //设置周期时间
    PWMA_ARRL = 0;

    PWMA_CCR1H =5; //设置占空比时间
    PWMA_CCR1L = 0;

PWMA_ENO = 0x03;

delay_us(10);
}

示例下,周期占空比是动态的,周期占空比会有波动

神农鼎 发表于 2025-3-1 19:37:06



USB型,Ai8051U创新风格库函数持续开发中,内部视频培训, 听取建议,2/26更新 - 软件库函数/原理图库/PCB库/最小包装 国芯技术交流网站 - AI32位8051交流社区

1325986650 发表于 2025-3-2 08:20:35

神农鼎 发表于 2025-3-1 19:37
USB型,Ai8051U创新风格库函数持续开发中,内部视频培训, 听取建议,2/26更新 - 软件库函数/原理图库/PCB ...

这个在哪里下载 下载链接?论坛找了半天没看见
页: [1] 2
查看完整版本: PWM开起波形异常