maxs-well / ad7606-driver-verilog

AD7606 driver verilog

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ad7606-driver-verilog

AD7606端口

AD7606_ctrl.v

外部信号
通过这些信号可以控制整个模块的采样开始
clk : 整个模块的主时钟,推荐使用50M时钟,时钟再高某些信号的时序可能不满足芯片手册上的要求
rst_n : 整个模块的复位信号,低电平复位
en : 控制AD7606的采样率,通过使能信号控制采样过程的开始达到控制AD7606的采样
start : 开始采样信号,高电平时代表开始采样;此时如果en为高则开始采样;当该电平为低时,AD7606不会进入采样状态

AD7606的控制信号
这些端口是直接连接AD7606,会根据外部信号产生相应的变化
busy : AD7606的busy输出信号,当全通道(8 channel)开始采样之后该信号变高,采样结束该信号拉低
fdata : AD7606的指示信号,在采样结果输出阶段,该信号拉高表明输出的数据为一通道的数据
cvtData : AD7606的并行数据输出端口
cs : AD7606的片选信号,低电平有效
rd : AD7606的读信号,低电平有效
cvtX : AD7606的通道采样信号,有cvtA,cvtB
range : AD7606模拟输入的电压范围选择,高电平为10V,低电平为5V
phy_rst : AD7606的硬件复位信号,高电平有效
vio : AD7606的IO口电压选择

AD7606的读取信号
读取这些数据可以更好的对AD7606控制
chx : 从AD7606读取回来的通道数据,x有1-8
update : AD7606数据更新指示信号,为高代表数据已经更新
phy_busy: AD7606忙碌状态信号,为高代表AD7606正在忙碌中

常数定义
RANGE_10V: 控制range ,为1时代表模拟输入范围为10V,0代表模拟输入范围为5V
WAIT_CNT : 调试过程中曾用到,保留
T2 : cvtX 保持低电平的时间次数,芯片手册中cvtX 推荐保持25ns,所以这里使用2(40ns)保证低电平的时间满足时序要求

generate_en.v

外部信号
clk : 整个模块的主时钟
rst_n : 整个模块的复位信号,低电平复位

AD7606的输出信号
en_o : 模块的输出使能信号

常数定义
INTERVAL_CNT: 使能信号的周期数设置

AD7606Demo

ad_top.v

需要例化一个PLL锁相环并命名为pll,并且将三个verilog文件添加进工程,绑定好管脚即可编译通过。该Demo以200K的采样率采集信号并输出。

使用的AD7606模块
AD7606
虽然可能模块不一样,但相关的端口控制等操作应该都是大同小异的,因为都是使用一个AD7606的芯片

环境
Quartus II 13.0
Windows 7

About

AD7606 driver verilog

License:GNU General Public License v2.0


Languages

Language:Verilog 100.0%