• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

DAC芯片DAC081S101测试试验设计Verilog代码VIVADO ARTIX-7开发板

09/30 13:36
383
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24110R00244160.docx

共1个文件

名称:DAC芯片DAC081S101测试试验设计Verilog代码VIVADO? ARTIX-7开发板

软件:VIVADO

语言:Verilog

代码功能:

DAC芯片DAC081S101测试试验

产生一个0-255循环递增的数据,通过SPI接口不断的写入到DAC中,输出的模拟电压可以控制LED的亮暗变化

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在ARTIX-7开发板验证,ARTIX-7开发板如下,其他开发板可以修改管脚适配:

ARTIX-7开发板.png

1.实验简介

本实验练习使用DA,实验中使用的芯片型号为DAC081S101,最大采样率为30MHz,精度为8位。

图1、DAC电路模块

2.实验过程

本实验通过FPGA定时提供DAC芯片驱动信号和电压数据值,同时通过LED灯的亮度表示电压的大小。

图2、DAC081S101时序图

图3、输入数据内容格式

图2所示是DAC驱动时序图;图3所示是DAC芯片16位数据输入格式,D7~D0是需要转换的电压数据,PD1~PD0是DAC掉电模式选择,本实验选择通用模式00。D7~D0表示十进制值的大小范围是0~255,本实验通过输入0~255循环递增的值使DAC芯片输出电压由0递增至最大,使LED灯的亮度由暗至亮循环变化。

3.程序设计

程序设计比较简单,功能是FPGA驱动DAC081S101芯片循环输出0~3.3V电压并通过LED灯显示。at7_prj10_top.v是顶层模块,包含da_mod.v、da_data_time_mod.v和da_time_mod.v模块。da_mod.v是DAC的驱动模块,定时输出不同电压值;da_data_time_mod.v模块定时循环产生不同电压值数据;da_time_mod.v模块产生使能信号,使da_mod.v模块定时配置DAC模块输出电压。

引脚名称

FPGA引脚

FPGA引脚方向

功能描述

clk_in

E3

Input

FPGA输入时钟100MHz

da_syn

J18

Output

DAC片选信号

da_din

J17

Input

DAC数据输出

da_sck

J14

Output

DAC时钟输入

4.实验现象

编译综合完成后下载bit程序到开发板中,可以看到LED灯循环由暗至亮。

部分代码展示:

`timescale?1ns/100ps
module?at7_prj_top(
??????????????????????clk_in??????,
??????????????????????
??????????????????????//da
??????????????????????da_syn??????,
??????????????????????da_din??????,
??????????????????????da_sck??????
??????????????????????
????????????????????);
????????????????
??????????????
input?????????????????clk_in??????;
??????????????????????
??????????????????????//ad
output????????????????da_syn??????;
output????????????????da_din??????;
output????????????????da_sck??????;
wire??????????????????da_en???????;
wire????[15:0]????????da_data?????;
wire??????????????????da_syn??????;
wire??????????????????da_din??????;
wire??????????????????da_sck??????;
reg??????????????rst_n???????????;
reg????[31:0]????rst_cnt?????????;
reg????[4:0]?????clk_1m_cnt??????;
reg??????????????clk_1m??????????;
always?@(posedge?clk_in)
begin
?????if(rst_cnt?<?32'd1000000)
?????begin
??????????rst_cnt?<=?rst_cnt?+?1'b1;
?????end
end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1335

  • 2-24110R00244160.docx
    下载

相关推荐