找回密码
 立即注册
楼主: 田园风光46

产生2路带死区同相的相位相差180的频率占空比可调的PWM

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:525
  • 最近打卡:2025-05-14 06:49:29

24

主题

520

回帖

1044

积分

荣誉版主

积分
1044
发表于 2024-3-15 17:36:18 | 显示全部楼层
这样就简单了。我整理一下思路,晚上或者明天回复。

so easy!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:63
  • 最近打卡:2025-05-14 11:49:25

73

主题

5925

回帖

1万

积分

超级版主

积分
12221
发表于 2024-3-15 18:55:56 | 显示全部楼层
社区*** 发表于 2024-3-15 16:29
40kHz左右的PWM输出频率会变化吗?
如果频率不变,180度相位差不变,只改变占空比,那就好办了。 ...

/*************        功能说明        **************
先别修改程序, 直接下载"Objects"里的"pwm.hex"测试, 下载时选择主频24MHz.
MCU主频24MHz, PWM时钟6分频=24/6=4MHz.

PWM1通道工作于PWM模式1, PWM2工作于匹配输出模式. 输出PWM周期1ms.

通道1输出: P2.0, PWMA1P输出, P2.1, PWMA1N输出
通道2输出: P2.2, PWMA2P输出, P2.3, PWMA2N输出,  PWMA2相对PWMA1滞后180度相位.
如有需要, 用户自行修改成别的IO输出.


特别提醒:由于需要中断介入处理,所以最小、最大占空比受限制,本例PWM频率40KHz,占空比在10%~40%可以正常工作。

输出有相位差的多路PWM使用STC8H2K08U或STC8G2K64S4或STC8A8K64D4这些型号更方便,纯硬件输出,占空比无限制,不占CPU时间。

14B-PWMA-2个相位差180度的PWM互补输出P2口-匹配输出0或1.rar (39.79 KB, 下载次数: 152)




点评

OK, 就是这样。 有梁工的代码,我就省事了。  详情 回复 发表于 2024-3-15 19:39
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:525
  • 最近打卡:2025-05-14 06:49:29

24

主题

520

回帖

1044

积分

荣誉版主

积分
1044
发表于 2024-3-15 19:39:09 | 显示全部楼层
梁*** 发表于 2024-3-15 18:55
/*************        功能说明        **************
先别修改程序, 直接下载"Objects"里的"pwm.hex"测试, 下载时选 ...

OK, 就是这样。
有梁工的代码,我就省事了。
回复 支持 反对

使用道具 举报 送花

0

主题

14

回帖

66

积分

注册会员

积分
66
发表于 2024-3-16 07:49:54 | 显示全部楼层
梁*** 发表于 2024-3-15 18:55
/*************        功能说明        **************
先别修改程序, 直接下载"Objects"里的"pwm.hex"测试, 下载时选 ...

好的,谢谢。
回复 支持 反对

使用道具 举报 送花

0

主题

14

回帖

66

积分

注册会员

积分
66
发表于 2024-3-16 07:50:18 | 显示全部楼层
社区*** 发表于 2024-3-15 19:39
OK, 就是这样。
有梁工的代码,我就省事了。

回复 支持 反对

使用道具 举报 送花

0

主题

14

回帖

66

积分

注册会员

积分
66
发表于 2024-4-25 09:58:01 | 显示全部楼层
梁*** 发表于 2024-3-15 18:55
/*************        功能说明        **************
先别修改程序, 直接下载"Objects"里的"pwm.hex"测试, 下载时选 ...

梁工你好
  我现在在使用STC8H2K12来实现两路相位相差180度的PWM,之前看资料上写的这个芯片的硬件移相只有P1.3  P1.5两个管脚,线路板已经画好,我想知道怎么实现,有参考的例程吗,之前在论坛上的例程好像和我的要求不一样。

点评

参考14B,自己改下IO。 STC8H系列-高级PWM范例程序下载,2024/1/3 更新 https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1779  详情 回复 发表于 2024-4-25 11:08
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:63
  • 最近打卡:2025-05-14 11:49:25

73

主题

5925

回帖

1万

积分

超级版主

积分
12221
发表于 2024-4-25 11:08:05 | 显示全部楼层
0104*** 发表于 2024-4-25 09:58
梁工你好
  我现在在使用STC8H2K12来实现两路相位相差180度的PWM,之前看资料上写的这个芯片的硬件移相只 ...

参考14B,自己改下IO。

STC8H系列-高级PWM范例程序下载,2024/1/3 更新
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1779
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:67
  • 最近打卡:2025-05-14 11:12:07

720

主题

1万

回帖

1万

积分

管理员

积分
15750
发表于 2024-4-25 11:42:25 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

3

主题

47

回帖

173

积分

注册会员

积分
173
发表于 2024-8-18 19:24:35 | 显示全部楼层
本帖最后由 dong97512 于 2024-8-18 19:25 编辑

梁工,你好!
      一个车载信号线,我用如下一段测试语句测试波形的频率和占空比可以运行 ,请问,信号无波形的时候,占空比如何得到0%?
        P_SW2 |= 0x80;                //SFR enable   

    PWMA_SR1   &= 0xF9;        
        PWMA_SR2   &= 0xFD;        
        PWMA_CCER1 |= 0x11;      //捕获功能使能  CC1E=1  CC2E=1
        while(( PWMA_SR1 &  0x02  )==0);
        while(( PWMA_SR1 &  0x04  )==0);
        
        A_num= (u16) PWMA_CCR2H<<8;
        A_num |= PWMA_CCR2L;
                while(( PWMA_SR2&0x02  )==0);
        
        B_num= (u16) PWMA_CCR1H<<8;
        B_num |= PWMA_CCR1L;
                PWMA_CCER1 &= 0xEE;   ////捕获功能禁止  CC1E=0  CC2E=0
        P_SW2 &= 0x7F;                //SFR enable   
         F_num=SYSCLK/B_num;   //频率
        Duty= ( A_num*100/ B_num   )  ;//占空比
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-14 17:01 , Processed in 0.126004 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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