OpenEdv-开源电子网

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

[ALTERA] 【正点原子FPGA连载】第五十章 高速AD/DA实验--摘自《正点原子开拓者FPGA开发指南》

[复制链接]

1117

主题

1128

帖子

2

精华

超级版主

Rank: 8Rank: 8

积分
4668
金钱
4668
注册时间
2019-5-8
在线时间
1224 小时
发表于 2019-5-27 20:06:11 | 显示全部楼层 |阅读模式
本帖最后由 正点原子01 于 2019-11-28 23:45 编辑

1)实验平台:正点原子开拓者FPGA开发板
2)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-281143-1-1.html
3)本实例源码下载: 44_hs_ad_da.rar (5.23 MB, 下载次数: 3312)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2013

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5618
金钱
5618
注册时间
2018-10-21
在线时间
1591 小时
发表于 2019-11-4 19:00:23 | 显示全部楼层
wanggong 发表于 2019-11-4 17:21
AD数据接收模块的代码如下:
1 module ad_wave_rec(
2 input clk , //时钟

这里只是将AD的数据输入这个模块中,然后在SignalTap II软件中观察AD数据的变化的
回复 支持 0 反对 1

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2019-10-16
在线时间
31 小时
发表于 2019-11-4 17:20:09 | 显示全部楼层
AD数据接收模块的代码如下: 1 module ad_wave_rec( 2 input clk , //时钟 3 input rst_n , //复位信号, 低电平有效 4 5 input [7:0] ad_data , //AD输入数据 6 //模拟输入电压超出量程标志(本次试验未用到) 7 input ad_otr , //0:在量程范围 1:超出量程 8 output reg ad_clk //AD(TLC5510)驱动时钟,最大支持20Mhz时钟 9 ); 10 11 //***************************************************** 12 //** main code 13 //***************************************************** 14 15 //时钟分频(2分频,时钟频率为25Mhz),产生AD时钟 16 always @(posedge clk or negedge rst_n) begin 17 if(rst_n == 1'b0) 18 ad_clk <= 1'b0; 19 else 20 ad_clk <= ~ad_clk; 21 end 22 23 endmodule
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2019-10-16
在线时间
31 小时
发表于 2019-11-4 17:20:32 | 显示全部楼层
AD数据接收模块的代码如下: 1 module ad_wave_rec( 2 input clk , //时钟 3 input rst_n , //复位信号, 低电平有效 4 5 input [7:0] ad_data , //AD输入数据 6 //模拟输入电压超出量程标志(本次试验未用到) 7 input ad_otr , //0:在量程范围 1:超出量程 8 output reg ad_clk //AD(TLC5510)驱动时钟,最大支持20Mhz时钟 9 ); 10 11 //***************************************************** 12 //** main code 13 //***************************************************** 14 15 //时钟分频(2分频,时钟频率为25Mhz),产生AD时钟 16 always @(posedge clk or negedge rst_n) begin 17 if(rst_n == 1'b0) 18 ad_clk <= 1'b0; 19 else 20 ad_clk <= ~ad_clk; 21 end 22 23 endmodule
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2019-10-16
在线时间
31 小时
发表于 2019-11-4 17:21:23 | 显示全部楼层
AD数据接收模块的代码如下:
1 module ad_wave_rec(
2 input clk , //时钟
3 input rst_n , //复位信号, 低电平有效
4 5
input [7:0] ad_data , //AD输入数据
6 //模拟输入电压超出量程标志(本次试验未用到)
7 input ad_otr , //0:在量程范围 1:超出量程
8 output reg ad_clk //AD(TLC5510)驱动时钟,最大支持20Mhz时钟
9 );
10
11 //*****************************************************
12 //** main code
13 //*****************************************************
14
15 //时钟分频(2分频,时钟频率为25Mhz),产生AD时钟
16 always @(posedge clk or negedge rst_n) begin
17 if(rst_n == 1'b0)
18 ad_clk <= 1'b0;
19 else
20 ad_clk <= ~ad_clk;
21 end
22
23 endmodule
这里面没有发现任何的对引脚的操作,AD值这么就读到了呢
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2019-10-16
在线时间
31 小时
发表于 2019-11-5 11:44:07 | 显示全部楼层
晓得了,这个采集也很奇怪


module ad_wave_rec(
    input                 clk         ,  //时钟
    input                 rst_n       ,  //复位信号,低电平有效
   
    input         [7:0]   ad_data     ,  //AD输入数据
    //模拟输入电压超出量程标志(本次试验未用到)
    input                 ad_otr      ,  //0:在量程范围 1:超出量程
    output   reg          ad_clk         //AD(AD9280)驱动时钟,最大支持32Mhz时钟
    );

//*****************************************************
//**                    main code
//*****************************************************

//时钟分频(2分频,时钟频率为25Mhz),产生AD时钟
always @(posedge clk or negedge rst_n) begin
    if(rst_n == 1'b0)
        ad_clk <= 1'b0;
    else
        ad_clk <= ~ad_clk;
end   

endmodule


在这个地方ad_data怎么就采集到了呢,不是需要先4个CLK之后才是有效数据的吗?
回复 支持 反对

使用道具 举报

3

主题

2013

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5618
金钱
5618
注册时间
2018-10-21
在线时间
1591 小时
发表于 2019-11-5 14:01:23 | 显示全部楼层
wanggong 发表于 2019-11-5 11:44
晓得了,这个采集也很奇怪

确实数据是滞后于时钟有效的。不过这个不重要啊,时钟是一直有的,AD数据也一直都是连续的有效的数据。
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2019-10-16
在线时间
31 小时
发表于 2019-11-5 15:13:46 | 显示全部楼层
有道理的,8位数数据并行输出是可以的,要是串行输出那就凉了
回复 支持 反对

使用道具 举报

15

主题

89

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2019-12-17
在线时间
76 小时
发表于 2020-3-24 20:58:51 | 显示全部楼层
请问这个实验是不是没有AD输出的数据,ad_data[7:0]是不是只是AD的输入呀
回复 支持 反对

使用道具 举报

3

主题

2013

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5618
金钱
5618
注册时间
2018-10-21
在线时间
1591 小时
发表于 2020-3-25 09:21:27 | 显示全部楼层
啥都不会的佩奇 发表于 2020-3-24 20:58
请问这个实验是不是没有AD输出的数据,ad_data[7:0]是不是只是AD的输入呀

AD只有输入的数据,DA才是输出的数据
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 13:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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