AD7606芯片驱动-FPGA实现

        简介

        AD7606是一款16位ADC芯片,可实现8通道并行采集,每通道最大速度可达1M,可实现多种模式数据采集。

        介绍

        本次FPGA使用的是8通道串行采样模式,设计中所用到的AD7606引脚说明如下:

名称 定义
CONVST 同步采集转换开始信号
BUSY ADC忙碌状态信号
RD/SCLK 采样/寄存器工作时钟
CS 片选使能
DOUTA~DOUTH

ADC 8通道串行输出

SDI 寄存器数据输入

 本次采用的寄存器读写时序如下图所示:

 1、寄存器读写第一位默认为0;

2、第二位代表寄存器读写位,0代表写寄存器,1代表读寄存器;

3、6个地址位,具体寄存器定义查阅芯片手册;

4、如果是写操作,后面8bit为寄存器值,如果是读操作则通过DoutA接口读取返回的寄存器数据。

5、该芯片支持CRC模式,本次设计默认不启动CRC模式,所以后面8bitCRC在普通模式下不存在。

采样时序如下图所示:

                        

本时序图发现如下两个问题:

1、DoutA~DoutH输出的应该是V1~V7数据,上图中标识有错误;

2、上图未标识CONVST和BUSY信号,显然这两个信号是必须存在的;

另外芯片引脚OS0~OS2都接高点平,进入Enters software mode模式。

代码

FPGA驱动代码如下:

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/08/05 15:39:27
// Design Name: 
// Module Name: ADC_SLAVE_DRI_TOP
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module ADC_SLAVE_DRI_TOP(
    input sys_clk,
    input sys_rst_n,

	output reg ADC_CONVST,
	input ADC_BUSY,
	output ADC_SCLK,
	output ADC_CS,
	input ADC_FRSTDATA,
	input[7:0] ADC_DATA,[7]:a [6]:b [5]:c ......
	output ADC_SDI,
	
	reg set
	input[15:0] adc_frame_length,
	
	input[15:0] adc_tdata_reg,
	input[15:0] adc_sample_rate_h,
	input[15:0] adc_sample_rate_l,	
	ADC REC REG DATA
	output[7:0] adc_rec_reg_data,
	output adc_rec_reg_data_en,
	input[3:0] adc_rw_set,//[1]:sample [0]:reg w/r
	input[15:0] adc_sample_rate_reg,
	input[15:0] adc_sample_channel_en_reg,
	ADC SAMPLE DATA	
	output[15:0] rx_data_length,
	output [7:0] axis_adc_data,
	output  axis_adc_tvalid,
	output  axis_adc_tlast	
	
    );

parameter ADC_CONVST_num = 'd100;	
	
	
reg[7:0] spi_tdata;
reg spi_tvalid;
reg tx_reg_en_r1;
wire[31:0] ADC_SAMPLE_RATE;
reg[31:0]sample_cnt;
reg tx_reg_wr_r1;
reg tx_reg_rd_r1;
wire tx_reg_wr;
wire tx_reg_rd;
wire sample_en;
reg ADC_BUSY_r1;
reg ADC_BUSY_r2;
reg ADC_BUSY_r3;
reg ADC_BUSY_r4;
reg ADC_BUSY_r5;
wire ADC_BUSY_neg;

reg[15:0]rec_adc_a_sample_data;
reg[15:0]rec_adc_b_sample_data;
reg[15:0]rec_adc_c_sample_data;
reg[15:0]rec_adc_d_sample_data;
reg[15:0]rec_adc_e_sample_data;
reg[15:0]rec_adc_f_sample_data;
reg[15:0]rec_adc_g_sample_data;
reg[15:0]rec_adc_h_sample_data;
reg rec_adc_sample_en;
reg ADC_SCLK_i;
reg ADC_CS_i;
reg[3:0] adc_mode;
reg[31:0] sample_en_delay;
reg[31:0] adc_stop_delay;

reg[15:0] rec_data_cnt;

reg[7:0] s_axis_tdata;
reg s_axis_tvalid;
wire s_axis_tlast;
reg[15:0] s_axis_tvalid_cnt;


reg[15:0] spi_clk_cnt;
reg[15:0] clk_cnt;

reg sample_en_r1;
reg sample_en_r2;
wire sample_en_neg;
wire[13:0] axis_data_count;


reg fifo_rst_n;
reg[15:0] fifo_rst_cnt;
reg fifo_rst_en;

wire channel_a_en;
wire channel_b_en;
wire channel_c_en;
wire channel_d_en;
wire channel_e_en;
wire channel_f_en;
wire channel_g_en;
wir
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值