利用FPGA运放整形一个正弦波变成一个占空比为50%的方波

利用FPGA运放整形一个正弦波变成一个占空比为50%的方波,第1张

第一种拦搜:你可以先将输入60MHZ的正弦波通过整形(整形电路)得到60MHZ的方波,然后经过FPGA进行分频,就可以了,挺简单的

第二种:你可以直接对争先信号进行判断,给它一个初值,将其整形为方波,最后再团磨经过分频,简或历就OK了!!!(这种方法不需要整形硬件电路)

今年电子大赛的时候做过一个,不过是基于XILINX公司的FPGA的,我给你介绍一下思路吧。

还有就是不知道你的信号发生器要求频率和精度是多少

一般有两种实现方式:一种是控制AD输出模拟量,另一种是通过SPWM和低通整流而来

本程序是第二种

工作机理有两部分组成:PWM的产生和表

产生部分由两个寄存器和一个计数器组成,计数器不听累加同时与两个寄存器作比较,两个寄存器一个控制置底一个控制拉高,一般把一个固定就行了告歼(有的地方说是一个控制周期一个控制高电平时间,其实是一样的)

表里放的是一个正弦数组(产生正弦波),之后有一个寄存器控制读取表的速度(间隔),把读取出的表值存入上面那个没固定的寄存器就行了

http://blog.sina.com.cn/s/blog_6e22b1da0100n52r.html

我的博客里有一篇关于SPWM模式的DDS的文章

你可以看一看

不懂得话可以给我留言

A/D转换的方法要比SPWM的方法简单,首先你要新建一个存储空间,里面存上A/D的电压控制量的一维数组,数组中存在的数值对应的电压从前到后呈正弦波形排列,每个周期从数组中每隔n个元素依次读取数组付给A/D转换器,这样A/D就可以输出启郑正弦波了,而里面的n步进是由一个寄存器控制的,n的大小决定了你的频率。

至于你说的液晶显示,按键等。我建议你用SOPC实现,Alter公司有Nois2的ip核。它相当于把FPGA当单片机用,你将液晶控制、按键控制、波形生成分别变成自定义IP核集成于系统,之后在袜旁冲顶层用C语言实现目的即可。

如果你不会HDL语言的话,必须先把它学了。如果你不了解SOPC的话,给你介绍一个很好的资料,估计你按这个一步一步来,1周就能学会。

http://wenku.baidu.com/view/dd7ade360b4c2e3f57276360.html

这是百度文库的链接,一共是五章,你可以自己搜索。

今年的电子大赛FPGA组的比赛有不少省市都和你这道题有关,虽然是XILINX公司的,但是大同小异。

首先有一个DAC芯片,然后山则FPGA控制这个DAC芯片。

在FPGA内部设置一个RAM,这个RAM里初始化时存放一堆DAC的数据。简单来说存放:

1)方波,2个幅值的;

2)锯齿波,2个幅值的;

3)三角波,2个幅值的;

4)正弦波,2个幅值的。

然后ABD三个拨码开关选择地址——8个起始地址,其中每个起始地址后面都存放128个数据(具体大团雀小看设置),让fpga定时在其中循环扫描输出数据到DAC。

最后由D开关控制扫描定时器时间2个档位。

我以前设计的板卡用FPGA控制32路塌唯早DAC输出,工作方法和这个类似,当然产品化的东西比较麻烦了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8279462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存