名称:基于FPGA的AD7705芯片驱动设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
AD7705芯片驱动设计
1、使用FPGA驱动AD7705芯片,使其输出AD值。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1.工程文件
2.程序文件
3.程序运行
4.控制状态机
5.仿真图
Testbench
仿真图
整体仿真
复位,连续写入32个高电平
依次写入8'h20,8'h03,8'h10,8'h40
写入8'h38,及读数
部分代码展示:
module AD7705_driver( input clk_50M, input reset_p,//系统复位信号,高有效 output [15:0] AD_data_out,//输出AD数据 //AD7705 input AD_DRDY_n, input AD_dout, output AD_CS, output AD_clk, output AD_din ); assign AD_CS=0;//CS保持低电平 parameter s_reset=3'd0;//FFFF parameter s_communicate_clkreg=3'd1;//8'h20 parameter s_clk_reg=3'd2;//8'h03 parameter s_communicate_setreg=3'd3;//8'h10 parameter s_set_reg=3'd4;//8'h40 parameter s_communicate_datareg=3'd5;//8'h38,读通道1 parameter s_read_data=3'd6;//读数16bit parameter s_wait_DRDY=3'd7;//等待DRDY==0 //定义寄存器 reg [7:0] communicate_clkreg=8'h20; reg [7:0] clk_reg=8'h03; reg [7:0] communicate_setreg=8'h10; reg [7:0] set_reg=8'h40; reg [7:0] communicate_datareg=8'h38; reg [2:0] state=3'd0; //AD_clk最大5M,上升沿读写 reg [7:0] cycle_cnt=8'd0; reg AD_clk_reg=0;//使用5M时钟,50/5=10; reg [7:0] AD_clk_reg_cnt=8'd0; always@(posedge clk_50M) if(reset_p) AD_clk_reg_cnt<=8'd0; else
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=700
阅读全文
593