给大家提供个简单实现PDM的方法。
前两天看到了PDM原理,觉得比PWM要好。理论上负载调节范围应该比PWM更宽一些,因为PDM波的开通时间分布的比较均匀,所以,同样的负载条件下,在一个周期内,PDM的连续关断时间要比PWM小。用PWM来调功的话就是简单粗暴的设置固定的开通关断时间比例,达到功率控制的目的,但是对双管推挽ZVS自激振荡电路来说,这样做很可能因为关断时间过长导致停振,使得电流断断续续,PDM可以更均匀分配开通和关断时间比例,非常适合自激振荡电路调功。
但是关于PDM的波形具体怎么生成,找来找去都没有个满意的答案,不如自己搞一个,于是有了这个超简单的PDM生成电路。
PDM分配开通关断时间的效果:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=ea0dba30cf13632715edc23ba18da056/c78159dfa9ec8a1398f5710cb203918fa2ecc099.jpg?tbpicau=2025-02-21-05_4fdfe46f9c815c7c63a3c9ec60fc2195)
4位的拨码开关,一共16个档,上图中拨的是“0101”,十进制是5,实际输出的比例会比拨码大1,也就是6/16。示波器中上面那个是输入波形,下边的是PDM波形。黄色和蓝色竖线之间是16个脉冲,可以看到输出脉冲尽可能的均匀分布。如果是可以平均分配的比例就完全平均分了,看下边这个4/16的,拨码应为3,“0011”:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=6702f0d057d162d985ee621421dfa950/9ad64a087bf40ad107d379f70a2c11dfa9ecce19.jpg?tbpicau=2025-02-21-05_e1c433ae513aa60d4fd135eb24772a21)
分布很均匀吧。
用来控制双管推挽自激ZVS电路上可以这样搞:
1、检测振荡波形的过零信号,第一行的信号(CLK_IN)就用过零检测的脉冲代替,输入上升还是下降沿无所谓,电路只利用下降沿计算周期。
2、第二行分配后的输出信号(PDM_OUT)用来控制ZVS两只MOS管的栅级信号,控制逻辑是:
第二行输出信号是0的时候,两个管的栅极都拉低;
第二行输出信号是1的时候正常输出原控制信号。
其实就是把 “原栅极控制信号” 和 “PDM_OUT” 与一下,与的结果送到栅极。
下边是完整PDM生成电路:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=451c3715016034a829e2b889fb1349d9/7053d125bc315c60e891d5fbd0b1cb13485477c8.jpg?tbpicau=2025-02-21-05_67c4b77c01c559bf885b6c3441428183)
原理很简单,就是把https://blog.csdn.net/wzying25/article/details/78880185,这个基于累加器的PDM算法用电路实现了一下,核心就是图中那个加法器74LS283D,触发器用来暂存运算结果,每个周期把设定的值送入加法器做累加,累加溢出信号就是需要的PDM波。至于为什么这样就会生成PDM波,大佬的博客里讲的东西手动算几遍就懂了。
前两天看到了PDM原理,觉得比PWM要好。理论上负载调节范围应该比PWM更宽一些,因为PDM波的开通时间分布的比较均匀,所以,同样的负载条件下,在一个周期内,PDM的连续关断时间要比PWM小。用PWM来调功的话就是简单粗暴的设置固定的开通关断时间比例,达到功率控制的目的,但是对双管推挽ZVS自激振荡电路来说,这样做很可能因为关断时间过长导致停振,使得电流断断续续,PDM可以更均匀分配开通和关断时间比例,非常适合自激振荡电路调功。
但是关于PDM的波形具体怎么生成,找来找去都没有个满意的答案,不如自己搞一个,于是有了这个超简单的PDM生成电路。
PDM分配开通关断时间的效果:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=ea0dba30cf13632715edc23ba18da056/c78159dfa9ec8a1398f5710cb203918fa2ecc099.jpg?tbpicau=2025-02-21-05_4fdfe46f9c815c7c63a3c9ec60fc2195)
4位的拨码开关,一共16个档,上图中拨的是“0101”,十进制是5,实际输出的比例会比拨码大1,也就是6/16。示波器中上面那个是输入波形,下边的是PDM波形。黄色和蓝色竖线之间是16个脉冲,可以看到输出脉冲尽可能的均匀分布。如果是可以平均分配的比例就完全平均分了,看下边这个4/16的,拨码应为3,“0011”:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=6702f0d057d162d985ee621421dfa950/9ad64a087bf40ad107d379f70a2c11dfa9ecce19.jpg?tbpicau=2025-02-21-05_e1c433ae513aa60d4fd135eb24772a21)
分布很均匀吧。
用来控制双管推挽自激ZVS电路上可以这样搞:
1、检测振荡波形的过零信号,第一行的信号(CLK_IN)就用过零检测的脉冲代替,输入上升还是下降沿无所谓,电路只利用下降沿计算周期。
2、第二行分配后的输出信号(PDM_OUT)用来控制ZVS两只MOS管的栅级信号,控制逻辑是:
第二行输出信号是0的时候,两个管的栅极都拉低;
第二行输出信号是1的时候正常输出原控制信号。
其实就是把 “原栅极控制信号” 和 “PDM_OUT” 与一下,与的结果送到栅极。
下边是完整PDM生成电路:
![](http://tiebapic.baidu.com/forum/w%3D580/sign=451c3715016034a829e2b889fb1349d9/7053d125bc315c60e891d5fbd0b1cb13485477c8.jpg?tbpicau=2025-02-21-05_67c4b77c01c559bf885b6c3441428183)
原理很简单,就是把https://blog.csdn.net/wzying25/article/details/78880185,这个基于累加器的PDM算法用电路实现了一下,核心就是图中那个加法器74LS283D,触发器用来暂存运算结果,每个周期把设定的值送入加法器做累加,累加溢出信号就是需要的PDM波。至于为什么这样就会生成PDM波,大佬的博客里讲的东西手动算几遍就懂了。