找回密码
 立即注册
查看: 1776|回复: 10

STC32的PWMA互补输出的死区问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-16 15:31:35

2

主题

8

回帖

52

积分

注册会员

积分
52
发表于 2023-6-12 10:40:25 | 显示全部楼层 |阅读模式
PWM4P和PWM4N这一对互补通道是不是没有死区功能?


STC32的PWMA互补输出的死区问题-1.png


回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-16 15:31:35

2

主题

8

回帖

52

积分

注册会员

积分
52
发表于 2023-6-12 11:40:15 | 显示全部楼层
我改成了PWM1P和PWM1N,互补输出是有的,但也还是不能成功插入死区。
配置如下:
1.png
帮忙确认下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:445
  • 最近打卡:2025-06-17 12:12:21
已绑定手机

40

主题

2060

回帖

7089

积分

论坛元老

积分
7089
发表于 2023-6-12 17:40:03 | 显示全部楼层
STC32的PWM4P和PWM4N是有死区功能的
可以使用STC32G实验箱例程包里的“25-高级PWM1-PWM2-PWM3-PWM4,驱动P6口呼吸灯实验程序”例子测试
PWM初始化里插入死区寄存器设置就行。前面的输出通道使能,与脚位切换,可根据自身需要修改设置:
1.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6093

回帖

1万

积分

超级版主

积分
12733
发表于 2023-6-15 16:14:25 | 显示全部楼层
PWMA的4路都有死区,但是都共用一个死区时间寄存器。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-16 15:31:35

2

主题

8

回帖

52

积分

注册会员

积分
52
发表于 2023-6-22 10:28:13 | 显示全部楼层
梁*** 发表于 2023-6-15 16:14
PWMA的4路都有死区,但是都共用一个死区时间寄存器。

一个死区控制器没有问题的,但是但是我无论用PWM1还是PWM4都调不出来。。。

点评

直接下载STC官方例程里的HEX文件测试。  详情 回复 发表于 2023-6-22 10:32
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6093

回帖

1万

积分

超级版主

积分
12733
发表于 2023-6-22 10:32:21 | 显示全部楼层
xin*** 发表于 2023-6-22 10:28
一个死区控制器没有问题的,但是但是我无论用PWM1还是PWM4都调不出来。。。 ...

直接下载STC官方例程里的HEX文件测试。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-16 15:31:35

2

主题

8

回帖

52

积分

注册会员

积分
52
发表于 2023-6-23 16:11:20 | 显示全部楼层
本帖最后由 xinrc 于 2023-6-23 16:47 编辑
梁*** 发表于 2023-6-22 10:32
直接下载STC官方例程里的HEX文件测试。

我下载了例程测试过时可以插入死区的。
但是例程里PWMA的时钟是没有分频,而我需要一个频率比较低的PWM波形输出(例如:100Hz),于是对PWM的时钟进行分频,这样再插入死区就看不出来了。而死区计数器的驱动时钟源是分频前的,所以频率低的时候用示波器就看不出来了。

点评

死区是给MOSFET驱动的,一般都是几个us以内。如果你需要很长的间隔,那就不是死区时间,而是相位差了,得按相位差的方式实现。  详情 回复 发表于 2023-6-23 16:52
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:95
  • 最近打卡:2025-06-17 10:15:05

74

主题

6093

回帖

1万

积分

超级版主

积分
12733
发表于 2023-6-23 16:52:17 | 显示全部楼层
xin*** 发表于 2023-6-23 16:11
我下载了例程测试过时可以插入死区的。
但是例程里PWMA的时钟是没有分频,而我需要一个频率比较低的PWM波 ...

死区是给MOSFET驱动的,一般都是几个us以内。如果你需要很长的间隔,那就不是死区时间,而是相位差了,得按相位差的方式实现。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-16 15:31:35

2

主题

8

回帖

52

积分

注册会员

积分
52
发表于 2023-6-23 18:43:05 | 显示全部楼层
本帖最后由 xinrc 于 2023-6-23 18:48 编辑
梁*** 发表于 2023-6-23 16:52
死区是给MOSFET驱动的,一般都是几个us以内。如果你需要很长的间隔,那就不是死区时间,而是相位差了,得 ...

相位差的方式怎么实现呢,我其实需要的波形和插入死区的波形是一致的,只是需要这个死区时间的可调范围大一些.
另外我看手册上写HSCLDIV这个寄存器是可以调节PWM和SPI的时钟的,但是设置了没有用。
1.png

PS:我需要的死区时间在500us以内。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-05-16 15:31:35

2

主题

8

回帖

52

积分

注册会员

积分
52
发表于 2023-6-23 19:09:40 | 显示全部楼层
本帖最后由 xinrc 于 2023-6-23 19:18 编辑

1.png

我其实需要的是这样一组波形,PWM0是正负对称的方波,PWM1和PWM2是互补的方波(需要插入死区,死区时间小于500us可调)。PWM0和PWM1之间相位有偏差,做到可调。

三个波形的频率是一样的,只是相位上的差别

@梁工,这样的能实现吗?

点评

可以实现,可以参考我们的相位差PWM例子,或者使用STC8G2K64S4系列更好实现。  详情 回复 发表于 2023-6-24 12:27
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 21:07 , Processed in 0.151310 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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