找回密码
 立即注册
查看: 723|回复: 5

144MHZ的高速高级HSPWM硬件移相怎么动态调整频率和相位

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-12-04 10:05:00
已绑定手机

2

主题

11

回帖

48

积分

新手上路

积分
48
发表于 2025-12-3 20:08:13 | 显示全部楼层 |阅读模式
                P_SW2 |=0x80;
                PWMA_ARR_DATA=arr <<1;
                PWMA_PERIOD=144000000/arr;
                PWM3_Duty=0;        
                PWM4_Duty=PWMA_PERIOD;               
                PWM5_Duty=PWMA_PERIOD/2;
                PWM6_Duty=PWMA_PERIOD/2;
        
                HSPWMA_CFG = 0x03;                 
                WritePWMA((u8)&PWMA_ARRH, (u8)(PWMA_PERIOD-1)>> 8);        // 自动重装载寄存器,  控制PWM周期
                WritePWMA((u8)&PWMA_ARRL, (u8)(PWMA_PERIOD-1));               
                WritePWMA((u8)&PWMA_CCR3H, (u8)(PWM3_Duty >> 8));        //设置占空比时间
                WritePWMA((u8)&PWMA_CCR3L, (u8)PWM3_Duty);
                WritePWMA((u8)&PWMA_CCR4H, (u8)(PWM4_Duty >> 8));        
                WritePWMA((u8)&PWMA_CCR4L, (u8)PWM4_Duty);
        
                HSPWMA_CFG = 0x13;         
                WritePWMA((u8)&PWMA_CCR5H, (u8)(PWM5_Duty >> 8));        
                WritePWMA((u8)&PWMA_CCR5L, (u8)PWM5_Duty);        
                WritePWMA((u8)&PWMA_CCR6H, (u8)(PWM6_Duty >> 8));        
                WritePWMA((u8)&PWMA_CCR6L, (u8)PWM6_Duty);



               为什么这样配置实现不了


           



回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:641
  • 最近打卡:2025-12-17 10:15:23
已绑定手机
已实名认证

123

主题

3278

回帖

8316

积分

版主

积分
8316
发表于 2025-12-3 21:01:39 | 显示全部楼层
启动高速pwm前,需要确保pll时钟已经起振,一般建议设置好pll时钟后等个1ms,然后打开高速异步pwm。
然后再使用异步读写pwm方式操作pwm寄存器
你可以先实现传统的高速pwm调整占空比,然后再尝试移相部分
以及,高速异步部分的寄存器需要额外设置hspwma_cfg
1000025280.png
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-12-04 10:05:00
已绑定手机

2

主题

11

回帖

48

积分

新手上路

积分
48
发表于 2025-12-3 21:42:49 来自手机 | 显示全部楼层
王昱顺 发表于 2025-12-3 21:01
启动高速pwm前,需要确保pll时钟已经起振,一般建议设置好pll时钟后等个1ms,然后打开高速异步pwm。
然后再 ...

初始化时已经给了默认频率和相位,这部分是正常的,现在想动态调整频率和相位,实现不了,不知道问题出在哪里

点评

[attachimg]123207[/attachimg] 需要HSPWMA_CFG = 0x13;  详情 回复 发表于 2025-12-4 09:43
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:641
  • 最近打卡:2025-12-17 10:15:23
已绑定手机
已实名认证

123

主题

3278

回帖

8316

积分

版主

积分
8316
发表于 2025-12-4 09:43:50 | 显示全部楼层
rnis*** 发表于 2025-12-3 21:42
初始化时已经给了默认频率和相位,这部分是正常的,现在想动态调整频率和相位,实现不了,不知道问题出在 ...

截图202512040943205107.jpg


需要HSPWMA_CFG = 0x13;
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-12-04 10:05:00
已绑定手机

2

主题

11

回帖

48

积分

新手上路

积分
48
发表于 2025-12-4 10:05:00 | 显示全部楼层
王*** 发表于 2025-12-4 09:43
需要HSPWMA_CFG = 0x13;

都有设置的,
                P_SW2 |=0x80;
                PWMA_ARR_DATA=arr <<1;
                PWMA_PERIOD=144000000/arr;
                PWM3_Duty=0;        
                PWM4_Duty=PWMA_PERIOD;               
                PWM5_Duty=PWMA_PERIOD/2;
                PWM6_Duty=PWMA_PERIOD/2;
        
                HSPWMA_CFG = 0x03;                 
                WritePWMA((u8)&PWMA_ARRH, (u8)(PWMA_PERIOD-1)>> 8);        // 自动重装载寄存器,  控制PWM周期
                WritePWMA((u8)&PWMA_ARRL, (u8)(PWMA_PERIOD-1));               
                WritePWMA((u8)&PWMA_CCR3H, (u8)(PWM3_Duty >> 8));        //设置占空比时间
                WritePWMA((u8)&PWMA_CCR3L, (u8)PWM3_Duty);
                WritePWMA((u8)&PWMA_CCR4H, (u8)(PWM4_Duty >> 8));        
                WritePWMA((u8)&PWMA_CCR4L, (u8)PWM4_Duty);
        
                HSPWMA_CFG = 0x13;         
                WritePWMA((u8)&PWMA_CCR5H, (u8)(PWM5_Duty >> 8));        
                WritePWMA((u8)&PWMA_CCR5L, (u8)PWM5_Duty);        
                WritePWMA((u8)&PWMA_CCR6H, (u8)(PWM6_Duty >> 8));        
                WritePWMA((u8)&PWMA_CCR6L, (u8)PWM6_Duty);

点评

那你可以试试不使用高速PWM,先用同步方式,试试看能不能正常调节 如果能的话,考虑是WritePWMA这个函数的问题  详情 回复 发表于 2025-12-4 10:28
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:641
  • 最近打卡:2025-12-17 10:15:23
已绑定手机
已实名认证

123

主题

3278

回帖

8316

积分

版主

积分
8316
发表于 2025-12-4 10:28:59 | 显示全部楼层
rnis*** 发表于 2025-12-4 10:05
都有设置的,
                P_SW2 |=0x80;
                PWMA_ARR_DATA=arr  8);        // 自动重 ...

那你可以试试不使用高速PWM,先用同步方式,试试看能不能正常调节
如果能的话,考虑是WritePWMA这个函数的问题
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-12-18 16:20 , Processed in 0.129751 second(s), 72 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表