原创 FPGA实现简单PWM

2014-11-20 10:32 3933 13 15 分类: FPGA/CPLD
  1. PWM原理:Pulse Width Modulation,是一种脉宽调制技术,通过对一系列脉冲的宽度进行调制,得到所需要的波形。可以通过硬件也可以通过软件的方式实现。这里主要介绍如何用FPGA实现PWM调制。
  2. 软件上实现,主要是通过要求设计出需要的占空比。
  3. 设计思路:本设计是通过RAM模拟出一个三角波,并且这个三角波没有负数。如果是用mif文件导入就可以有负数,并且还能实现其他的波形,比如正弦波、余弦波等。回归到三角波,假设输入的信号值通过AD转换过来为数字值为十进制55,要求得到10%的占空比,就需要设定的三角波比55小的部分占整个周期的10%。
  4. 程序简介:

程序主要分为四个模块:下图1可以看到这几个模块的组成结构。其中1.时钟模块,确定采样间隔时间,本设计是每隔5us采一次点,系统时钟是50MHz。2.波形制定模块,利用RAM有地址配合,形成有规律的三角波,主要是控制好RAM的地址线、数据线和写信号。3.AD模块输出转换后的数字信号。4.最后一个是比较模块,得到占空比为10%的波形,如下图2所示。图2 是最后形成的PWM波形,可以看到每个周期是2.5ms,而为高的信号保持了25us,与想要的结果符合,所以本设计符合要求。

    5.   思维扩展:本设计是一个非常简单的PWM调制,输入的值是一定的,没有变化,这一点可以再变化一下,那样得到的占空比会不一样。还有三角波也可以变成正弦、余弦来进行比较。并且引申下去可以得到更多不同占空比的PWM。

图1 程序结构图

图2 示波器显示结果图

文章评论2条评论)

登录后参与讨论

用户1790896 2014-11-20 10:31

为什么我的界面能看清楚这图

用户403664 2014-11-20 09:17

图片挂了
相关推荐阅读
用户1790896 2015-03-16 09:28
回差的艺术
           回差是一个比较专业的词汇,就是将条件点变成条件段。 举例说明:需要用外部电压来控制继电器的开关,但是这个电压是不稳定在跳变,这样就不能单一的用电压超过某一个值就改变继电...
用户1790896 2014-12-16 15:17
Lpm_compare的使用
        在没有使用QuartusII自带的Lpm_compare 这个模块时,自己理解的就是很简单的比较器,没有想到用到它有符号的功能就得出不一样的结果了。         首先要了解...
用户1790896 2014-12-06 13:59
Verilog中小数计算方法
在verilog中没有小数的概念,如果要有小数的计算,最普遍的办法是将小数按2的倍数增大计算完后缩小相同的倍数。按2的多少倍数增大是个关键。 例如需要将0.2变成整数计算,那么需要将0.2x2N使之成...
用户1790896 2014-12-03 13:46
I2C的verilog实现
I2C 有 2条双向串行线,一条数据线SDA,一条时钟线SCL。   SDA传输数据是大端传输,每次传输8bit,即一字节。数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据...
用户1790896 2014-11-21 08:42
Debussy与Modlesim的共处一室
Debussy与Modlesim的共处一个程序 Modlesim与Debussy的安装步骤网上一大把,我就不累述了。重点是在win7 64位系统下安装时需要下载msvcp71.dll、msvc...
我要评论
2
13
关闭 站长推荐上一条 /2 下一条