OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7051|回复: 7

[ALTERA] 新起点FPGA开发板使用高速ADDA模块产生波形

[复制链接]

1

主题

12

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-6-19
在线时间
2 小时
发表于 2020-4-24 16:13:17 | 显示全部楼层 |阅读模式
1金钱
用wave to mif产生的正弦波文件,FREQ_ADJ分别调到0和255对应的是195KHz和763Hz。怎么达到更小的频率精度呢?我想着调节深度为65536,修改代码测试,发现得不到完好的正弦波,是首先于DA的位数吗?好像不对啊,我需要5Hz的锯齿波和5、10KHz正弦波。其次产生的锯齿波和软件的示意图是反的,后来我通过修改mif文件弄好了。




锯齿波

锯齿波

最佳答案

查看完整内容[请看2#楼]

1、达到更小的频率精度,增加ROM的深度没有什么用,肯定是想办法让DA输出一个波形的周期最短。 第一个办法是提高DA的时钟频率(注意不要超过手册最大的时钟频率);第二个办法是降低一个完整波形所需要的时钟周期数。 2、第一个方法比较简单,可以通过对输入的外部时钟,进行倍频即可。第二个办法可以通过在ROM mif文件不变的基础上, 增加ROM地址的跳变量,比如程序里的rd_addr
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2020-4-24 16:13:18 | 显示全部楼层
1、达到更小的频率精度,增加ROM的深度没有什么用,肯定是想办法让DA输出一个波形的周期最短。
     第一个办法是提高DA的时钟频率(注意不要超过手册最大的时钟频率);第二个办法是降低一个完整波形所需要的时钟周期数。
2、第一个方法比较简单,可以通过对输入的外部时钟,进行倍频即可。第二个办法可以通过在ROM mif文件不变的基础上,
      增加ROM地址的跳变量,比如程序里的rd_addr <= rd_addr + 8'd1,改成rd_addr <= rd_addr + 8'd2或者更多;
     当然也可以修改上位机软件的倍频数,其原理和增加ROM地址的跳变量差不多。
3、产生的锯齿波和软件的示意图是反的,是因为WaveToMif只是一个波形转MIF的软件,波形显示的是数字量。
     而高速ADDA模块的输出电压逻辑是,当输入数据为0时,AD9708输出+5V的电压;当输入数据为255时,AD9708输出-5V的电压,
     所以看到的数字量波形和实际模拟电压波形是反的。
QQ浏览器截图20200425075742.png QQ浏览器截图20200425080102.png

回复

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-6-19
在线时间
2 小时
 楼主| 发表于 2020-4-24 16:15:42 | 显示全部楼层
重新传下图

锯齿波

锯齿波

频率计数

频率计数

正弦波

正弦波
回复

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-6-19
在线时间
2 小时
 楼主| 发表于 2020-4-26 16:23:18 | 显示全部楼层
1、提高DA时钟频率不是变相降低了最低频率吗?WaveToMif软件设置ROM深度为256,倍频系数为1,而输入时钟为50Mhz,那么一个完整的正弦波周期长度为256*20ns = 5120ns,当FREQ_ADJ的值为0时,即正弦波的最快输出频率为1s/5120ns(1s = 1000000000ns) ≈ 195.3Khz。现在频率范围在763Hz~195KHz。DA工作时钟越大,最慢频率越大啊。
2、增加地址步进,示波器上显示的频率增加,并没有减小啊。
3、ROM深度增加,横向地址对应的电压步进越小,图形约平滑,可供调整的频率精度越高,假设是16位深度,65536,最小的频率就可以到2.983Hz呀。
求解答
回复

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-6-19
在线时间
2 小时
 楼主| 发表于 2020-4-26 16:23:49 | 显示全部楼层
QinQZ 发表于 2020-4-24 16:13
1、达到更小的频率精度,增加ROM的深度没有什么用,肯定是想办法让DA输出一个波形的周期最短。
     第一 ...


1、提高DA时钟频率不是变相降低了最低频率吗?WaveToMif软件设置ROM深度为256,倍频系数为1,而输入时钟为50Mhz,那么一个完整的正弦波周期长度为256*20ns = 5120ns,当FREQ_ADJ的值为0时,即正弦波的最快输出频率为1s/5120ns(1s = 1000000000ns) ≈ 195.3Khz。现在频率范围在763Hz~195KHz。DA工作时钟越大,最慢频率越大啊。
2、增加地址步进,示波器上显示的频率增加,并没有减小啊。
3、ROM深度增加,横向地址对应的电压步进越小,图形约平滑,可供调整的频率精度越高,假设是16位深度,65536,最小的频率就可以到2.983Hz呀。
求解答
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2020-4-26 20:12:54 | 显示全部楼层
如果你只是想得到5Hz、10KHz的波形,可以直接调节FREQ_ADJ得到。另外因为DA的数据位宽是8位,所以ROM深度最多也是搞成256,再多就没意义了。
回复

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-6-19
在线时间
2 小时
 楼主| 发表于 2020-4-27 09:09:31 | 显示全部楼层
QinQZ 发表于 2020-4-26 20:12
如果你只是想得到5Hz、10KHz的波形,可以直接调节FREQ_ADJ得到。另外因为DA的数据位宽是8位,所以ROM深度最 ...

最低到763Hz,是啊,地址线是8位没辙了,我想对DA输入频率进行分频,降低输入频率说不定还可以。我这边打算使用DDS芯片模块了,AD9833之类的,理论可以做到0.1Hz分辨率。我是打算在锯齿波上叠加正弦波。
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2020-4-27 09:16:02 | 显示全部楼层
不沉默的大帝 发表于 2020-4-27 09:09
最低到763Hz,是啊,地址线是8位没辙了,我想对DA输入频率进行分频,降低输入频率说不定还可以。我这边打 ...

嗯, 可以的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-3 09:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表