xinrc 发表于 2023-6-12 10:40:25

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

PWM4P和PWM4N这一对互补通道是不是没有死区功能?





xinrc 发表于 2023-6-12 11:40:15

我改成了PWM1P和PWM1N,互补输出是有的,但也还是不能成功插入死区。
配置如下:

帮忙确认下{:handshake:}

乘风飞扬 发表于 2023-6-12 17:40:03

STC32的PWM4P和PWM4N是有死区功能的
可以使用STC32G实验箱例程包里的“25-高级PWM1-PWM2-PWM3-PWM4,驱动P6口呼吸灯实验程序”例子测试
PWM初始化里插入死区寄存器设置就行。前面的输出通道使能,与脚位切换,可根据自身需要修改设置:


梁工 发表于 2023-6-15 16:14:25

PWMA的4路都有死区,但是都共用一个死区时间寄存器。

xinrc 发表于 2023-6-22 10:28:13

梁工 发表于 2023-6-15 16:14
PWMA的4路都有死区,但是都共用一个死区时间寄存器。

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

梁工 发表于 2023-6-22 10:32:21

xinrc 发表于 2023-6-22 10:28
一个死区控制器没有问题的,但是但是我无论用PWM1还是PWM4都调不出来。。。 ...

直接下载STC官方例程里的HEX文件测试。

xinrc 发表于 2023-6-23 16:11:20

本帖最后由 xinrc 于 2023-6-23 16:47 编辑

梁工 发表于 2023-6-22 10:32
直接下载STC官方例程里的HEX文件测试。
我下载了例程测试过时可以插入死区的。
但是例程里PWMA的时钟是没有分频,而我需要一个频率比较低的PWM波形输出(例如:100Hz),于是对PWM的时钟进行分频,这样再插入死区就看不出来了。而死区计数器的驱动时钟源是分频前的,所以频率低的时候用示波器就看不出来了。

梁工 发表于 2023-6-23 16:52:17

xinrc 发表于 2023-6-23 16:11
我下载了例程测试过时可以插入死区的。
但是例程里PWMA的时钟是没有分频,而我需要一个频率比较低的PWM波 ...

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

xinrc 发表于 2023-6-23 18:43:05

本帖最后由 xinrc 于 2023-6-23 18:48 编辑

梁工 发表于 2023-6-23 16:52
死区是给MOSFET驱动的,一般都是几个us以内。如果你需要很长的间隔,那就不是死区时间,而是相位差了,得 ...
相位差的方式怎么实现呢,我其实需要的波形和插入死区的波形是一致的,只是需要这个死区时间的可调范围大一些.
另外我看手册上写HSCLDIV这个寄存器是可以调节PWM和SPI的时钟的,但是设置了没有用。


PS:我需要的死区时间在500us以内。

xinrc 发表于 2023-6-23 19:09:40

本帖最后由 xinrc 于 2023-6-23 19:18 编辑



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

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

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

页: [1] 2
查看完整版本: STC32的PWMA互补输出的死区问题