FPGA Verilog 单芯片控制双AD7606芯片

FPGA Verilog 单芯片控制双AD7606芯片

  • 前言
  • 一、模式选择
  • 二、AD7606 FPGA实现
    • 1.ad7606部分
    • 2.数据发送
    • 3.实际仿真图(上板验证后也正确)


前言

控制双ad7606的目的是因为所需要的通道数12,单个ad7606只有8个通道,因此需要控制2个ad7606满足12个通道的采样需求。


一、模式选择

1 转换之后进行读取:由这个图片可以确定ca cb 以及cs 信号的工作状态
FPGA Verilog 单芯片控制双AD7606芯片_第1张图片
2 串行读取模式:由这个图片可以确定sclk 与 数据读取的工作状态
FPGA Verilog 单芯片控制双AD7606芯片_第2张图片
3 数据存储以及发送:使用一个16位的寄存器对16个通道的数据进行依次保存,保存完之后立即发送出去,具体就是保存完ad通道1的数据后,里面发送出去,发送需要的时间比较长,因此发送结束之前就能够进行下一通道的采集。因此我的sclk是受控的,不是完全连续的。

二、AD7606 FPGA实现

1.ad7606部分

代码如下:

module ad7606(
   input        clk,
	input        res,
	
	input        dout_a,     //ad7606通道a输入串行读取数据
	input        dout_b,    //ad7606通道b输入串行读取数据
	input        ad_busy,   //ad7606输入busy信号
	input        caiji_flag,  //外界输入开始数据采集的标志
	
//	output   wire caiji_over,
	output   reg  ad_ch_over, //ad8个通道采集over标志
	output   reg  [3:0] stata,
	output   reg  [4:0] cnt_bite,
	output   reg  [5:0] cnt,
	
//	output   wire [15:0] crc_real,
	output   wire        data_tx,
	output   wire        start_ad_one,
	output   wire        start_ad_two,
	output   wire        crc_flag,
	output   reg         crc_realflag,
	output   wire        data_overflag,
	output   wire        data_code,
	output               dis_clk      ,
	output               dis_cs       ,
	output               dis_miso     ,
	output               dis_ca       ,
	output               dis_busy     ,  
	
	output   reg [15:0]databuffa,

你可能感兴趣的:(fpga项目,fpga开发)