adc verilog spi 时序
我用的是adc081sd芯片,(由于我们使用的是FPGA不用像单片机那样考虑极性cpol,相位cpha,下面仅仅介绍下跟单片机比较下) 什么是cpol:若cs被拉为低电平时sclk(时钟)是高那么cpol为1,若cs被拉为低电平时sclk为0时,cpol为0;
什么是相位 cpha:若cs被拉为低电平后是第一个时钟沿采集数据就为0,第二个时钟沿采集数据为1.
时钟上升沿对应SDATA位稳定时就为上升沿采集数据(下降沿时芯片内部会自动将数据送到SDTA引脚供上升沿采集),时钟下降沿对应图SDATA位稳定时就为下降沿沿采集数据,例如下图
如下图所示sclk上升沿时SDTA稳定,下降沿数据不稳定(那么时钟的下降沿时AD芯片送数据,上升沿到来采集管脚数据即可)。上升沿采集。

module adc
(
input clk_in,//
input rst_n_in,//
input adc_data,//caiji
output reg cs,
output reg sclk,
output reg[7:0] led
);
//产生状态
reg[5:0] cnt=0;
always@(posedge clk_in or negedge rst_n_in)
begin
if(!rst_n_in)
cnt<=0;
else
begin
if(cnt>=35)cnt<=0;
else cnt<=cnt+1;
end
end
reg[15:0] data_reg=16'b0;
always@(posedge clk_in or negedge rst_n_in)
begin
if(!rst_n_in)begin cs<=1;sclk<=1; end
else
begin
case(cnt)
0:begin sclk<=1; cs<=1; end
1:begin cs<=0; end
2:begin sclk<=0;end
3:begin sclk<=1;data_reg[15]<=adc_data;end //采集了数据最高位z2
4:begin sclk<=0;end
5:begin sclk<=1;data_reg[14]<=adc_data;end //采集了数据位z1
6:begin sclk<=0;end
7:begin sclk<=1;data_reg[13]<=adc_data;end//采集了数据z0
8:begin sclk<=0;end
9:begin sclk<=1;data_reg[12]<=adc_data;end//采集了数据DB7
10:begin sclk<=0;end
11:begin sclk<=1;data_reg[11]<=adc_data;end//采集了数据DB6
12:begin sclk<=0;end
13:begin sclk<=1;data_reg[10]<=adc_data;end//采集了数据DB5
14:begin sclk<=0;end
15:begin sclk<=1;data_reg[9]<=adc_data;end//采集了数据DB4
16:begin sclk<=0;end
17:begin sclk<=1;data_reg[8]<=adc_data; end//采集了数据DB3
18:begin sclk<=0;end ////采集了DB2
19:begin sclk<=1; data_reg[7]<=adc_data; end
20:begin sclk<=0;end //
21:begin sclk<=1;data_reg[6]<=adc_data;end//采集了数据DB1
22:begin sclk<=0;end //
23:begin sclk<=1;data_reg[5]<=adc_data;end//采集了数据DB0
24:begin sclk<=0;end //
25:begin sclk<=1;data_reg[4]<=adc_data;end//采集了数据ZERO 4
26:begin sclk<=0;end //
27:begin sclk<=1;data_reg[3]<=adc_data;end//采集了数据ZERO 3
28:begin sclk<=0;end //
29:begin sclk<=1;data_reg[2]<=adc_data;end//采集了数据ZERO 2
30:begin sclk<=0;end //
31:begin sclk<=1;data_reg[1]<=adc_data;end//采集了数据ZERO 1
32:begin sclk<=0;end //
33:begin sclk<=1;data_reg[0]<=adc_data;end //采集了数据ZERO 0
34:begin cs<=1; led<=data_reg[12:5]; end //将数据锁存,采下次数据时led的数据不会发生跳变
endcase
end
end
endmodule
adc verilog spi 时序的更多相关文章
- SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)
SPI接口扫盲 douqingl@gmail.com 为何要写这篇文档?百度上找出来的SPI接口中文描述都说的太过简略,没有一篇文档能够详尽的将SPI介绍清楚的.wikipedia英文版[注释 ...
- SPI总线协议及SPI时序图详解
SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚 ...
- SPI总线协议及SPI时序图详解【转】
转自:https://www.cnblogs.com/adylee/p/5399742.html SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接 ...
- FPGA构造spi时序——AD7176为例(转)
reference:https://blog.csdn.net/fzhykx/article/details/79490330 项目中用到了一种常见的低速接口(spi),于是整理了一下关于spi相关的 ...
- 使用软件模拟spi 时序时注意点
软件模拟 spi 时序有以下几个点需要注意: cs 使能后到第一个 sck 边沿需要延时. 最后一个sck 边沿到下一个 cs 需要延时. sck 的高电平和低电平本身需要维持时间. mosi 需要先 ...
- MCU2FPGA之SPI时序总线
转载自:http://blog.csdn.net/ce123/article/details/6895408 SPI总线有四种工作方式(SP0, SP1, SP2, SP3),其中使用的最为广泛的是S ...
- SPI时序
1.串行外围接口 高速.全双工的同步通信总线 一主多从 一般速度几十MHZ,最高可以工作在上百MHZ 2.连接图 3.工作模式
- 【接口时序】4、SPI总线的原理与Verilog实现
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE 硬件平台: 1. FPGA型号:Xilinx公 ...
- SPI总线的原理与Verilog实现
转载地址:https://www.cnblogs.com/liujinggang/p/9609739.html 一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件 ...
随机推荐
- Java基础 -- 泛型之泛型参数
泛型机制常用的参数有3个: “?”代表任意类型.如果只指定了<?>,而没有extends,则默认是允许任意类. extends关键字声明了类型的上界,表示参数化的类型可能是所指定的类型,或 ...
- C# 写 LeetCode easy #28 Implement strStr()
28.Implement strStr() Implement strStr(). Return the index of the first occurrence of needle in hays ...
- Boost Python学习笔记(五)
你将学到什么 在C++中调用Python代码时的返回值问题 基础类型 修改Python脚本(build/zoo.py) def rint(): return 2 def rstr(): return ...
- C#多进程并行
为了并行执行多个任务,可以启动多个进程(并行数). 下面提供两种方法,总任务数10,最大并行数4. 一.方法1 using System; using System.Collections.Gener ...
- 玩转Android---组件篇---Intent(意图)
Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”. 目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter&g ...
- win10系统添加照片查看器(win7版)
很多人不习惯win10的照片查看器,还是比较怀念win7版本的照片查看器,通过以下两种方法可以在win10图片上点击右键时,"打开方式"中重现"Windows照片查看器& ...
- ZC01
1.苏州市住房公积金管理中心 http://www.szgjj.gov.cn/szgjj/ 2.苏州社保 http://www.szsbzx.net.cn:9900/web/website/index ...
- <Linux系统minfo命令用法>
minfo命令——ms-dos文件系统的各项参数的显示 minfo这个指令主要用于显示MS-DOS文件系统的各项参数,包括扇区数.磁头数.柱面数等. 参数主要有以下几个: -v 显示详细的参数 dri ...
- JS展示预览PDF。
刚好遇到需求,需要在手机端--展示一个电子收据,电子收据返回是PDF格式的,所以需要在前端上面去做PDF预览. 在学习过程中,了解到一种很简单,不需要任何插件的方法做PDF预览,但是这方法有局限性. ...
- 从客户端(content1="<img src="/web/news/...")中检测到有潜在危险的 Request.Form 值。
在html编辑器里面加入图片提交的时候 就报一个 从客户端(content1="<img src="/web/news/...")中检测到有潜在危险的 Reques ...