名称: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开发板如下,其他开发板可以修改管脚适配:
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
383