rnisqnqs 发表于 2025-11-18 15:14:34

用PWMAPS-P1.3和PWMAPS6-1.5,的硬件移相失败

用PWMAPS-P1.3和PWMAPS6-1.5,的硬件移相控制全桥电路。改变CCR6不能正常移相,当什么



只能改变占空比

王昱顺 发表于 2025-11-19 10:36:46

可以看一下这个例子:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7805&extra=

不对称PWM下,调节相位移动需要调整两个CCR寄存器


发代码可以直接使用电脑截图,手机拍的比较难辨认

rnisqnqs 发表于 2025-11-19 11:54:52

王昱顺 发表于 2025-11-19 10:36
可以看一下这个例子:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7805&extra=



void PWMA_PhaseInit(void)
{
          PWMA_PERIOD=1200;          
          PWM5_Duty=PWMA_PERIOD/2;

          PWM6_Duty=0;       
          Phase_shift=0;
       
    P_SW2 |=0x80;
          PWMA_PS = 0x00; //PWMA5-P1.3 PWMA6-P1.5
    P_SW2 &=0x80;       
          PWMA_CR1 =0x80;
          PWMA_PSCR =0x00;
          PWMA_CCER3= 0x00;
    PWMA_ARR = PWMA_PERIOD; //设置周期时间       
          PWMA_CCMR5X = 0x00;;//PWMA5不对称PWM模式1
    PWMA_CCMR5= 0x60;
          PWMA_CCMR6X = 0x01;;//PWMA6不对称PWM模式1       
    PWMA_CCMR6= 0x60;
    PWMA_CCR5H= (u8)(PWM5_Duty >> 8); //设置占空比时间
    PWMA_CCR5L= (u8)(PWM5_Duty);       
    PWMA_CCR6H= (u8)((PWM6_Duty+Phase_shift) >> 8); //设置占空比时间
    PWMA_CCR6L= (u8)((PWM6_Duty+Phase_shift));       
    PWMA_CCER3= 0x11;        //CC6P=0 CC6E=1 CC5P=0 高电平有效 CC5E=1 开启输入捕获/比较输出
                PWMA_ENO2          = 0x05;//使能PWMAPS5和PWMAPS6输出       
    PWMA_EGR    = 0x01;// 产生一次更新事件, 清除计数器和预分频计数器, 装载预分频寄存器的值       
                PWMA_BKR = 0x80;//使能主输出
                PWMA_CR1   |= 0x21;        //中心对齐模式1,开始计时       

}
void PWMA_Phase_Adjust(void)
{
if(Phase_shift <= PWM5_Duty)
{
          PWMA_ARR = PWMA_PERIOD; //设置周期时间       
    PWMA_CCR6H= (u8)((PWM6_Duty+Phase_shift) >> 8); //设置占空比时间
    PWMA_CCR6L= (u8)((PWM6_Duty+Phase_shift));

}

rnisqnqs 发表于 2025-11-19 11:56:37

都是参考网站例程的,就是不能移相,只能改变占空比的变化。

王昱顺 发表于 2025-11-19 12:02:19

rnisqnqs 发表于 2025-11-19 11:56
都是参考网站例程的,就是不能移相,只能改变占空比的变化。

你需要同时操作四个ccr寄存器才能实现移相控制
你这里面只操作了两个
因为1个不对称pwm通道需要类似ccr1和ccr2共同作用这样才能控制

rnisqnqs 发表于 2025-11-19 14:04:22

王昱顺 发表于 2025-11-19 12:02
你需要同时操作四个ccr寄存器才能实现移相控制
你这里面只操作了两个
因为1个不对称pwm通道需要类似ccr1 ...

我用的是PWMAPS-1.3和PWMAPS6-1.5,它们和那个CCR配合?我试着加了CCR1到CCR4,都没效果

rnisqnqs 发表于 2025-11-19 14:11:25

王昱顺 发表于 2025-11-19 12:02
你需要同时操作四个ccr寄存器才能实现移相控制
你这里面只操作了两个
因为1个不对称pwm通道需要类似ccr1 ...

网站上的用的是1和2配合,3和4配合。实现1和3通道实现移相,但是我要实现5和6通道实现移相,要拿个通道的CCR去配合呢

rnisqnqs 发表于 2025-11-19 14:37:17

rnisqnqs 发表于 2025-11-19 14:11
网站上的用的是1和2配合,3和4配合。实现1和3通道实现移相,但是我要实现5和6通道实现移相,要拿个通道的 ...

占空比变了会跟着变

王昱顺 发表于 2025-11-19 15:06:48

rnisqnqs 发表于 2025-11-19 14:11
网站上的用的是1和2配合,3和4配合。实现1和3通道实现移相,但是我要实现5和6通道实现移相,要拿个通道的 ...

实现不了,你需要使用5和6组成一个通道
7和8组成一个通道这样子

rnisqnqs 发表于 2025-11-19 15:21:02

王昱顺 发表于 2025-11-19 15:06
实现不了,你需要使用5和6组成一个通道
7和8组成一个通道这样子

手册上不是说PWMAPS5-P1.3和PWMAPS6-1.5是专用的硬件移相脚位吗
页: [1] 2
查看完整版本: 用PWMAPS-P1.3和PWMAPS6-1.5,的硬件移相失败