sunny_225 发表于 2010-3-22 19:46:30

用FPGA如何实现高精度PWM发生器

查了一些资料,PWM发生器是通过调制波与载波进行比较而生成一系列占空比不等的方波,用FPGA芯片实现PWM发生器大概需要有四个模块,对模拟信号进行离散的模块、锯齿波载波模块、时序比较器模块、死区时间模块。但是如何用VHDL语言编写程序实在太困难了,例如:锯齿波的最大值设定,计数器的位数设定,高精度PWM达到多大频率才算得上高精度?不知道以上的这些粗浅理解是否正确?还希望前辈们不吝赐教!!!

zhaoyongqun 发表于 2010-11-19 22:17:20

PWM精度的概念,也可以用位数的概念表示,如12位分辨率PWM,在开关频率一定的情况下和计数时钟频率一定的情况下,PWM的辨率即精度就是一定的,如计数时钟频率为200MHz,开关频率为20KHz,那个一个周期的计数值为10000,这个就是你说是锯齿波最大值,这时PWM的有效位数为13位,产生PWM波也不用这么麻烦,简单一点说,有三个模块就可以了,计数模块,比较模块,输出锁存模块.再有输出FPGA的信号就已是数字信号,不用再离散化了.

youpeng 发表于 2013-7-13 20:49:16

好帖顶起。LZ说的似乎是SPWM的FPGA实现。

Luis_Li 发表于 2013-7-13 21:30:16

想要更高的精度可以尝试使用FPGA内部的进位链作为最小的延迟单位,结合计数器应该能把分辨率提高到18bit左右。
页: [1]
查看完整版本: 用FPGA如何实现高精度PWM发生器